v62
latestOpenAPI 3.1.0Dual (AGPL3.0, Commercial License Available)raw.githubusercontent.com2026-08-03211303932.5 KBServices
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.
put/api/v1/services/{id}
Path parameters
idstring uuid required
Service ID
Request body
Example request
{
"bindings": [
{
"created_at": "2026-07-29T15:23:06.660341Z",
"first_discovery_id": null,
"id": "999dbf39-0357-4b20-8bd8-cc20520334ea",
"ip_address_id": "550e8400-e29b-41d4-a716-446655440005",
"last_discovery_id": null,
"last_seen_at": "2026-07-29T15:23:06.660341Z",
"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-07-29T15:23:06.660341Z",
"valid_from": "2026-07-29T15:23:06.660341Z",
"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": "Unclaimed Open Ports",
"source": {
"type": "Manual"
},
"tags": [],
"updated_at": "2026-01-15T10:30:00Z",
"valid_from": "2026-01-15T10:30:00Z",
"valid_to": null,
"virtualization": null
}Response
Service updated
Example response
{
"data": {
"bindings": [
{
"created_at": "2026-07-29T15:23:06.668616Z",
"first_discovery_id": null,
"id": "7ad6de19-781d-4c36-b3a6-426ca0d47007",
"ip_address_id": "550e8400-e29b-41d4-a716-446655440005",
"last_discovery_id": null,
"last_seen_at": "2026-07-29T15:23:06.668616Z",
"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-07-29T15:23:06.668616Z",
"valid_from": "2026-07-29T15:23:06.668616Z",
"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": "Unclaimed Open Ports",
"source": {
"type": "Manual"
},
"tags": [],
"updated_at": "2026-01-15T10:30:00Z",
"valid_from": "2026-01-15T10:30:00Z",
"valid_to": null,
"virtualization": null
},
"meta": {
"api_version": 1,
"server_version": "0.17.7"
}
}