# Server

Server

## Webhook endpoint for AWX callbacks

> Webhook endpoint for AWX job status notifications.

```json
{"openapi":"3.0.0","info":{"title":"MetalWorks API","version":"1.0"},"tags":[{"name":"Server","description":"Server"}],"security":[{"token":[]}],"components":{"securitySchemes":{"token":{"type":"apiKey","name":"X-API-Key","in":"header"}}},"paths":{"/api/v1/server/awx/webhook":{"post":{"tags":["Server"],"summary":"Webhook endpoint for AWX callbacks","description":"Webhook endpoint for AWX job status notifications.","operationId":"awxWebhook","responses":{"200":{"description":"Successful operation"},"401":{"description":"Unauthenticated"}}}}}}
```

## Baseline a specific server

> Bring a server back to baseline by its inventory ID.

```json
{"openapi":"3.0.0","info":{"title":"MetalWorks API","version":"1.0"},"tags":[{"name":"Server","description":"Server"}],"security":[{"token":[]}],"components":{"securitySchemes":{"token":{"type":"apiKey","name":"X-API-Key","in":"header"}},"schemas":{"ServerBaselinePostRequest":{"properties":{"inventoryId":{"type":"integer"},"hostname":{"type":"string","pattern":"/^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$/i"}},"type":"object"},"ServerBaselinePostResponse":{"properties":{"server":{"$ref":"#/components/schemas/ClientServerRequest"}},"type":"object"},"ClientServerRequest":{"type":"object","allOf":[{"$ref":"#/components/schemas/ClientServer"},{"properties":{"request_id":{"type":"integer"},"client_server_request":{"description":"The raw request object","type":"object","nullable":true}},"type":"object"}]},"ClientServer":{"type":"object","allOf":[{"$ref":"#/components/schemas/Server"},{"properties":{"client":{"$ref":"#/components/schemas/Client"},"contract_id":{"type":"string","nullable":true},"name":{"description":"Name of the server","type":"string"},"status":{"description":"Status of the server","type":"string"},"status_message":{"description":"Normally empty, but can contain additional information; usually for failures","type":"string","nullable":true},"os":{"$ref":"#/components/schemas/OperatingSystem"},"ip_addresses":{"description":"IP addresses assigned to the server","type":"array","items":{"$ref":"#/components/schemas/IpAddress"}},"tags":{"description":"Tags assigned to the server","type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_:-]{1,64}$"}},"delivered_at":{"type":"string","format":"date-time","nullable":true},"released_at":{"type":"string","format":"date-time","nullable":true}},"type":"object"}]},"Server":{"properties":{"metal_server_uuid":{"description":"UUID of the metal server","type":"string","format":"uuid"},"inventory_id":{"description":"ID of the inventory server","type":"integer","nullable":true},"instance_type":{"$ref":"#/components/schemas/InstanceType"},"location":{"$ref":"#/components/schemas/Location"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time","nullable":true}},"type":"object"},"InstanceType":{"properties":{"id":{"type":"integer"},"name":{"type":"string"}},"type":"object"},"Location":{"properties":{"id":{"type":"integer"},"name":{"type":"string"}},"type":"object"},"Client":{"properties":{"id":{"description":"Client identifier","type":"integer"},"username":{"type":"string"}},"type":"object"},"OperatingSystem":{"properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string","enum":["centos","debian","fedora","fedora-core","fortios","freebsd","gentoo","opensuse","redhat","suse-linux","ubuntu"]},"version":{"type":"string"}},"type":"object"},"IpAddress":{"properties":{"ip_address":{"type":"string"}},"type":"object"}}},"paths":{"/api/v1/server/baseline":{"post":{"tags":["Server"],"summary":"Baseline a specific server","description":"Bring a server back to baseline by its inventory ID.","operationId":"baselineServer","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerBaselinePostRequest"}}}},"responses":{"200":{"description":"Back to baseline of server succesfully started.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerBaselinePostResponse"}}}},"401":{"description":"Unauthenticated"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"properties":{"message":{"type":"string"}},"type":"object"}}}},"422":{"description":"Unprocessable Content","content":{"application/json":{"schema":{"properties":{"message":{"type":"string"}},"type":"object"}}}}}}}}}
```

## List delivered servers

> Retrieve an aggregated list of servers that are currently delivered to clients.

```json
{"openapi":"3.0.0","info":{"title":"MetalWorks API","version":"1.0"},"tags":[{"name":"Server","description":"Server"}],"security":[{"token":[]}],"components":{"securitySchemes":{"token":{"type":"apiKey","name":"X-API-Key","in":"header"}},"schemas":{"DeliveredServersResponse":{"properties":{"deliveredServers":{"type":"array","items":{"$ref":"#/components/schemas/DeliveredServers"}}},"type":"object"},"DeliveredServers":{"properties":{"clientId":{"type":"integer"},"clientName":{"type":"string"},"instanceTypeId":{"type":"integer"},"instanceTypeName":{"type":"string"},"locationId":{"type":"integer"},"locationName":{"type":"string"},"contractId":{"type":"string"},"numDelivered":{"type":"integer"}},"type":"object"}}},"paths":{"/api/v1/server/delivered":{"get":{"tags":["Server"],"summary":"List delivered servers","description":"Retrieve an aggregated list of servers that are currently delivered to clients.","operationId":"listDeliveredServers","responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliveredServersResponse"}}}},"401":{"description":"Unauthenticated"}}}}}}
```

## Delete a specific server - use only for internal reasons, to force a release

> Delete a server by its UUID.

```json
{"openapi":"3.0.0","info":{"title":"MetalWorks API","version":"1.0"},"tags":[{"name":"Server","description":"Server"}],"security":[{"token":[]}],"components":{"securitySchemes":{"token":{"type":"apiKey","name":"X-API-Key","in":"header"}},"schemas":{"ServerDeleteResponse":{"properties":{"server":{"$ref":"#/components/schemas/ClientServerRequest"}},"type":"object"},"ClientServerRequest":{"type":"object","allOf":[{"$ref":"#/components/schemas/ClientServer"},{"properties":{"request_id":{"type":"integer"},"client_server_request":{"description":"The raw request object","type":"object","nullable":true}},"type":"object"}]},"ClientServer":{"type":"object","allOf":[{"$ref":"#/components/schemas/Server"},{"properties":{"client":{"$ref":"#/components/schemas/Client"},"contract_id":{"type":"string","nullable":true},"name":{"description":"Name of the server","type":"string"},"status":{"description":"Status of the server","type":"string"},"status_message":{"description":"Normally empty, but can contain additional information; usually for failures","type":"string","nullable":true},"os":{"$ref":"#/components/schemas/OperatingSystem"},"ip_addresses":{"description":"IP addresses assigned to the server","type":"array","items":{"$ref":"#/components/schemas/IpAddress"}},"tags":{"description":"Tags assigned to the server","type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_:-]{1,64}$"}},"delivered_at":{"type":"string","format":"date-time","nullable":true},"released_at":{"type":"string","format":"date-time","nullable":true}},"type":"object"}]},"Server":{"properties":{"metal_server_uuid":{"description":"UUID of the metal server","type":"string","format":"uuid"},"inventory_id":{"description":"ID of the inventory server","type":"integer","nullable":true},"instance_type":{"$ref":"#/components/schemas/InstanceType"},"location":{"$ref":"#/components/schemas/Location"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time","nullable":true}},"type":"object"},"InstanceType":{"properties":{"id":{"type":"integer"},"name":{"type":"string"}},"type":"object"},"Location":{"properties":{"id":{"type":"integer"},"name":{"type":"string"}},"type":"object"},"Client":{"properties":{"id":{"description":"Client identifier","type":"integer"},"username":{"type":"string"}},"type":"object"},"OperatingSystem":{"properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string","enum":["centos","debian","fedora","fedora-core","fortios","freebsd","gentoo","opensuse","redhat","suse-linux","ubuntu"]},"version":{"type":"string"}},"type":"object"},"IpAddress":{"properties":{"ip_address":{"type":"string"}},"type":"object"}}},"paths":{"/api/v1/server/{serverUuid}":{"delete":{"tags":["Server"],"summary":"Delete a specific server - use only for internal reasons, to force a release","description":"Delete a server by its UUID.","operationId":"deleteServer","parameters":[{"name":"serverUuid","in":"path","description":"UUID of the server","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"forceRelease","in":"query","description":"Try to (re-)release a server","schema":{"type":"integer"}}],"responses":{"200":{"description":"Release of server succesful","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerDeleteResponse"}}}},"401":{"description":"Unauthenticated"},"404":{"description":"Server not found","content":{"application/json":{"schema":{"properties":{"message":{"type":"string"}},"type":"object"}}}}}}}}}
```

## List servers

> Retrieve a list of servers with optional filters and pagination.

```json
{"openapi":"3.0.0","info":{"title":"MetalWorks API","version":"1.0"},"tags":[{"name":"Server","description":"Server"}],"security":[{"token":[]}],"components":{"securitySchemes":{"token":{"type":"apiKey","name":"X-API-Key","in":"header"}},"schemas":{"ServerListResponse":{"properties":{"servers":{"type":"array","items":{"$ref":"#/components/schemas/ClientServerRequest"}},"paginator":{"$ref":"#/components/schemas/Paginator"}},"type":"object"},"ClientServerRequest":{"type":"object","allOf":[{"$ref":"#/components/schemas/ClientServer"},{"properties":{"request_id":{"type":"integer"},"client_server_request":{"description":"The raw request object","type":"object","nullable":true}},"type":"object"}]},"ClientServer":{"type":"object","allOf":[{"$ref":"#/components/schemas/Server"},{"properties":{"client":{"$ref":"#/components/schemas/Client"},"contract_id":{"type":"string","nullable":true},"name":{"description":"Name of the server","type":"string"},"status":{"description":"Status of the server","type":"string"},"status_message":{"description":"Normally empty, but can contain additional information; usually for failures","type":"string","nullable":true},"os":{"$ref":"#/components/schemas/OperatingSystem"},"ip_addresses":{"description":"IP addresses assigned to the server","type":"array","items":{"$ref":"#/components/schemas/IpAddress"}},"tags":{"description":"Tags assigned to the server","type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_:-]{1,64}$"}},"delivered_at":{"type":"string","format":"date-time","nullable":true},"released_at":{"type":"string","format":"date-time","nullable":true}},"type":"object"}]},"Server":{"properties":{"metal_server_uuid":{"description":"UUID of the metal server","type":"string","format":"uuid"},"inventory_id":{"description":"ID of the inventory server","type":"integer","nullable":true},"instance_type":{"$ref":"#/components/schemas/InstanceType"},"location":{"$ref":"#/components/schemas/Location"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time","nullable":true}},"type":"object"},"InstanceType":{"properties":{"id":{"type":"integer"},"name":{"type":"string"}},"type":"object"},"Location":{"properties":{"id":{"type":"integer"},"name":{"type":"string"}},"type":"object"},"Client":{"properties":{"id":{"description":"Client identifier","type":"integer"},"username":{"type":"string"}},"type":"object"},"OperatingSystem":{"properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string","enum":["centos","debian","fedora","fedora-core","fortios","freebsd","gentoo","opensuse","redhat","suse-linux","ubuntu"]},"version":{"type":"string"}},"type":"object"},"IpAddress":{"properties":{"ip_address":{"type":"string"}},"type":"object"},"Paginator":{"title":"Paginator","description":"Pagination model","properties":{"from":{"title":"from","type":"integer"},"to":{"title":"to","type":"integer"},"total":{"title":"total","type":"integer"},"current_page":{"title":"current page","type":"integer"},"last_page":{"title":"last page","type":"integer"},"first_page_url":{"title":"first page url","type":"string"},"prev_page_url":{"title":"prev page url","type":"string"},"next_page_url":{"title":"next page url","type":"string"},"last_page_url":{"title":"last page url","type":"string"},"path":{"title":"path","type":"string"},"per_page":{"title":"per page","type":"integer"}},"type":"object"}}},"paths":{"/api/v1/server":{"get":{"tags":["Server"],"summary":"List servers","description":"Retrieve a list of servers with optional filters and pagination.","operationId":"listServers","parameters":[{"name":"page","in":"query","description":"Page number for pagination","schema":{"type":"integer"}},{"name":"perPage","in":"query","description":"Number of items per page","schema":{"type":"integer"}},{"name":"filter","in":"query","description":"Filters for server listing\n     *              (e.g., client_id, metal_server_uuid, created_at, updated_at, delivered_at, released_at)","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerListResponse"}}}},"401":{"description":"Unauthenticated"}}}}}}
```

## Create bare metal servers

> create bare metal server

```json
{"openapi":"3.0.0","info":{"title":"MetalWorks API","version":"1.0"},"tags":[{"name":"Server","description":"Server"}],"security":[{"token":[]}],"components":{"securitySchemes":{"token":{"type":"apiKey","name":"X-API-Key","in":"header"}},"schemas":{"ClientServerRequest":{"type":"object","allOf":[{"$ref":"#/components/schemas/ClientServer"},{"properties":{"request_id":{"type":"integer"},"client_server_request":{"description":"The raw request object","type":"object","nullable":true}},"type":"object"}]},"ClientServer":{"type":"object","allOf":[{"$ref":"#/components/schemas/Server"},{"properties":{"client":{"$ref":"#/components/schemas/Client"},"contract_id":{"type":"string","nullable":true},"name":{"description":"Name of the server","type":"string"},"status":{"description":"Status of the server","type":"string"},"status_message":{"description":"Normally empty, but can contain additional information; usually for failures","type":"string","nullable":true},"os":{"$ref":"#/components/schemas/OperatingSystem"},"ip_addresses":{"description":"IP addresses assigned to the server","type":"array","items":{"$ref":"#/components/schemas/IpAddress"}},"tags":{"description":"Tags assigned to the server","type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_:-]{1,64}$"}},"delivered_at":{"type":"string","format":"date-time","nullable":true},"released_at":{"type":"string","format":"date-time","nullable":true}},"type":"object"}]},"Server":{"properties":{"metal_server_uuid":{"description":"UUID of the metal server","type":"string","format":"uuid"},"inventory_id":{"description":"ID of the inventory server","type":"integer","nullable":true},"instance_type":{"$ref":"#/components/schemas/InstanceType"},"location":{"$ref":"#/components/schemas/Location"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time","nullable":true}},"type":"object"},"InstanceType":{"properties":{"id":{"type":"integer"},"name":{"type":"string"}},"type":"object"},"Location":{"properties":{"id":{"type":"integer"},"name":{"type":"string"}},"type":"object"},"Client":{"properties":{"id":{"description":"Client identifier","type":"integer"},"username":{"type":"string"}},"type":"object"},"OperatingSystem":{"properties":{"id":{"type":"integer"},"slug":{"type":"string"},"name":{"type":"string","enum":["centos","debian","fedora","fedora-core","fortios","freebsd","gentoo","opensuse","redhat","suse-linux","ubuntu"]},"version":{"type":"string"}},"type":"object"},"IpAddress":{"properties":{"ip_address":{"type":"string"}},"type":"object"},"ServerPostResponse":{"properties":{"servers":{"type":"array","items":{"$ref":"#/components/schemas/ClientServerRequest"}}},"type":"object"}}},"paths":{"/api/v1/server":{"post":{"tags":["Server"],"summary":"Create bare metal servers","description":"create bare metal server","operationId":"createClientServer","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientServerRequest"}}}},"responses":{"200":{"description":"Successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerPostResponse"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthenticated"},"422":{"description":"Unprocessable Content"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.i3d.net/api-references/flex-metal/server-1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
