{"openapi":"3.0.1","info":{"title":"Latitude.sh API","version":"2023-06-01","description":"The Latitude.sh API is a RESTful API to manage your Latitude.sh account. It allows you to perform the same actions as the Latitude.sh dashboard."},"servers":[{"url":"https://api.latitude.sh","variables":{"latitude_api_key":{"default":"<insert your api key here>"}}},{"url":"http://api.latitude.sh","variables":{"latitude_api_key":{"default":"<insert your api key here>"}}}],"tags":[{"name":"API keys"},{"name":"Baselines (Preview)","description":"Preview. Available to teams with the `baselines_api` feature flag. The shape of these endpoints may change before general availability."},{"name":"Billing"},{"name":"Elastic Ips"},{"name":"Events"},{"name":"Firewalls"},{"name":"IP Addresses"},{"name":"Kubernetes Clusters"},{"name":"Marketplace apps"},{"name":"Operating Systems"},{"name":"Plans"},{"name":"Public Networks"},{"name":"Private Networks"},{"name":"Projects"},{"name":"Regions"},{"name":"Roles"},{"name":"SSH Keys"},{"name":"Servers"},{"name":"Block Storage"},{"name":"Filesystem Storage"},{"name":"Object Storage"},{"name":"Tags"},{"name":"Teams"},{"name":"Team members"},{"name":"Traffic"},{"name":"User data"},{"name":"User profile"},{"name":"VPN Sessions"},{"name":"Virtual machines"},{"name":"Virtual machine backups"},{"name":"Virtual machine restores"}],"paths":{"/auth/api_keys":{"get":{"summary":"List API keys","operationId":"get-api-keys","tags":["API keys"],"security":[{"Bearer":[]}],"description":"Returns a list of all API keys.\n","x-mint":{"href":"/api-reference/get-api-keys"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"tok_6VE1Wd37dXnZJ","type":"api_keys","attributes":{"name":"Dor Daidelos","token_last_slice":"2daaa","api_version":"2023-06-01","read_only":false,"allowed_ips":[],"created_at":"2026-01-14T15:56:29+00:00","updated_at":"2026-01-14T14:56:29+00:00","last_used_at":null,"user":{"id":"user_Wel4PnEAmauQYZz3Vz83CkyV2BW","email":"beckie.prosacco@willms.test"}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/api_keys"}}}}}},"post":{"summary":"Create API key","operationId":"post-api-key","tags":["API keys"],"security":[{"Bearer":[]}],"parameters":[],"description":"Create a new API Key that is tied to the current user account. The created API key is only listed ONCE upon creation. It can however be regenerated or deleted.\n","x-mint":{"href":"/api-reference/post-api-key"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"tok_ez2A3DVldnawP","type":"api_keys","attributes":{"name":"App Token","token":"54ebfcfa2ad7f9fe0d4e081306554174d063","token_last_slice":"4d063","api_version":"2023-06-01","read_only":false,"allowed_ips":[],"created_at":"2026-01-14T15:56:29+00:00","updated_at":"2026-01-14T15:56:29+00:00","last_used_at":null,"user":{"id":"user_pVkpyK2aoVUlax6Zzx1pfrGe4wr","email":"nathanael@bartoletti-streich.test"}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/api_key"}}}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/create_api_key"},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"api_keys","attributes":{"name":"App Token"}}}}}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/create_api_key"},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"api_keys","attributes":{"name":"App Token"}}}}}}},"required":true}}},"/auth/api_keys/{api_key_id}":{"put":{"summary":"Rotate API key","operationId":"rotate-api-key","tags":["API keys"],"security":[{"Bearer":[]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"examples":{"Success":{"value":"tok_x1ZJrdx5qg4LV"}},"schema":{"type":"string"}}],"description":"Rotate an existing API Key, generating a new token. This invalidates the previous key.\nUse PATCH to update settings without rotating the token.\n","x-mint":{"href":"/api-reference/rotate-api-key"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"tok_x1ZJrdx5qg4LV","type":"api_keys","attributes":{"name":"App Token","token":"aeb7b57029087fd4449a8f0fc218d1e17b4c","token_last_slice":"17b4c","api_version":"2023-06-01","read_only":false,"allowed_ips":null,"created_at":"2026-01-14T15:56:30+00:00","updated_at":"2026-01-14T15:56:30+00:00","last_used_at":null,"user":{"id":"user_3J8PY3vz8ahap5nLXYmws36rwRE","email":"arnette@kutch.test"}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/api_key"}}}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/update_api_key"},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"tok_x1ZJrdx5qg4LV","type":"api_keys","attributes":{"name":"App Token"}}}}}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/update_api_key"},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"tok_x1ZJrdx5qg4LV","type":"api_keys","attributes":{"name":"App Token"}}}}}}},"required":true}},"patch":{"summary":"Update API key settings","operationId":"update-api-key","tags":["API keys"],"security":[{"Bearer":[]}],"parameters":[{"name":"api_key_id","in":"path","required":true,"examples":{"Success - Update name without rotating token":{"value":"tok_lpbV0DgRq4AWz"}},"schema":{"type":"string"}}],"description":"Update API Key settings (name, read_only, allowed_ips) without rotating the token.\nUse PUT to rotate the token.\n","x-mint":{"href":"/api-reference/update-api-key"},"responses":{"200":{"description":"Success - Update name without rotating token","content":{"application/vnd.api+json":{"examples":{"Success - Update name without rotating token":{"value":{"data":{"id":"tok_lpbV0DgRq4AWz","type":"api_keys","attributes":{"name":"Updated Name","token_last_slice":"c10e6","api_version":"2023-06-01","read_only":false,"allowed_ips":null,"created_at":"2026-01-14T15:56:30+00:00","updated_at":"2026-01-14T15:56:30+00:00","last_used_at":null,"user":{"id":"user_YLMV5L9oYRFoe4Jo4l2PCGKr8bBa","email":"jaime@ullrich.example"}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/api_key"}}}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/update_api_key"},"examples":{"Success - Update name without rotating token":{"summary":"Success - Update name without rotating token","value":{"data":{"id":"tok_lpbV0DgRq4AWz","type":"api_keys","attributes":{"name":"Updated Name"}}}}}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/update_api_key"},"examples":{"Success - Update name without rotating token":{"summary":"Success - Update name without rotating token","value":{"data":{"id":"tok_lpbV0DgRq4AWz","type":"api_keys","attributes":{"name":"Updated Name"}}}}}}},"required":true}},"delete":{"summary":"Delete API key","operationId":"delete-api-key","tags":["API keys"],"parameters":[{"name":"api_key_id","in":"path","required":true,"examples":{"Success":{"value":"tok_lQraYDPeOpjwW"}},"schema":{"type":"string"}}],"security":[{"Bearer":[]}],"description":"Delete an existing API Key. Once deleted, the API Key can no longer be used to access the API.\n","x-mint":{"href":"/api-reference/delete-api-key"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"meta":{}}}}}}}}}},"/baselines":{"get":{"summary":"List baselines","operationId":"get-baselines","tags":["Baselines (Preview)"],"security":[{"Bearer":[]}],"description":"**Preview.** Available to teams with the `baselines_api` feature flag. The shape of this\nendpoint may change before general availability.\n\nList all baselines in the team. A baseline records the configuration you expect your\nservers to be delivered with — plan, SSH keys, user data, disk layout and BIOS settings.\n","x-mint":{"href":"/api-reference/get-baselines"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"bl_pRMLydp0dQKr1","type":"baselines","attributes":{"name":"baseline-5","description":"Standard build for the web tier","target_type":"platforms","platforms":[{"id":"plan_GnzRD5xAqM5yw","slug":"g3-h100-medium-74","name":"g3.h100.medium-74"}],"ssh_keys":[],"user_data":null,"disk_layout":[{"role":"os","count":2,"raid_level":"raid-1"}],"bios":{"smt":true},"created_at":"2026-07-30T16:21:19.209Z"}}]}}},"schema":{"$ref":"#/components/schemas/baselines"}}}}}},"post":{"summary":"Create baseline","operationId":"create-baseline","tags":["Baselines (Preview)"],"security":[{"Bearer":[]}],"parameters":[],"description":"**Preview.** Available to teams with the `baselines_api` feature flag.\n\nCreate a baseline in the team. A baseline can target all servers, a custom set (when the\nplan is not yet known), or one or more specific platforms. When it targets platforms, the\ndisk layout is validated by the same rules a deploy applies — against the smallest of the\nselected platforms — so a baseline that saves here can be dispatched verbatim.\n","x-mint":{"href":"/api-reference/create-baseline"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"bl_VaNmodjeObE8W","type":"baselines","attributes":{"name":"web-fleet-v3","description":"Standard build for the public web tier","target_type":"platforms","operating_system":"ubuntu_22_04_x64_lts","platforms":[{"id":"plan_1R3zq24bOWxyn","slug":"g3-l40s-small-76","name":"g3.l40s.small-76"}],"ssh_keys":[{"id":"ssh_RLYV8DZ2D5QoE","name":"lindgren.example","fingerprint":"45:de:3e:19:41:1d:0e:8d:c8:22:70:34:db:5f:67:4b"}],"user_data":{"id":"ud_r0MK4O4kDa95w","description":"Two buttermilk waffles, topped with whipped cream and maple syrup, a side of two eggs served any style, and your choice of smoked bacon or smoked ham."},"disk_layout":[{"count":2,"role":"os","raid_level":"raid-1"},{"count":2,"role":"storage","filesystem":"ext4","mount_point":"/data"}],"bios":{"smt":true,"cstates":false},"created_at":"2026-07-30T16:21:19.430Z"}}}}},"schema":{"$ref":"#/components/schemas/baseline"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["baselines"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the baseline"},"description":{"type":"string","nullable":true,"description":"Description of the baseline"},"target_type":{"type":"string","enum":["all_servers","custom","platforms"],"description":"Baseline target: all servers, a custom set (plan unknown), or specific platforms"},"operating_system":{"type":"string","description":"Slug of the operating system the baseline expects the server to run (required)"},"platforms":{"type":"array","items":{"type":"string"},"description":"Slugs of the plans this baseline applies to. Required when target_type is \"platforms\""},"ssh_key_ids":{"type":"array","items":{"type":"string"},"description":"SSH keys the baseline expects on the server"},"user_data_id":{"type":"string","nullable":true,"description":"User data the baseline expects to run on first boot"},"disk_layout":{"type":"array","items":{"$ref":"#/components/schemas/baseline_disk_layout_group"},"description":"Expected disk layout"},"bios":{"type":"object","description":"Expected BIOS settings, keyed by setting id"}},"required":["name","target_type","operating_system"]}}}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"baselines","attributes":{"name":"web-fleet-v3","description":"Standard build for the public web tier","target_type":"platforms","operating_system":"ubuntu_22_04_x64_lts","platforms":["g3-l40s-small-76"],"ssh_key_ids":["ssh_RLYV8DZ2D5QoE"],"user_data_id":"ud_r0MK4O4kDa95w","disk_layout":[{"role":"os","count":2,"raid_level":"raid-1"},{"role":"storage","count":2,"filesystem":"ext4","mount_point":"/data"}],"bios":{"smt":true,"cstates":false}}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["baselines"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the baseline"},"description":{"type":"string","nullable":true,"description":"Description of the baseline"},"target_type":{"type":"string","enum":["all_servers","custom","platforms"],"description":"Baseline target: all servers, a custom set (plan unknown), or specific platforms"},"operating_system":{"type":"string","description":"Slug of the operating system the baseline expects the server to run (required)"},"platforms":{"type":"array","items":{"type":"string"},"description":"Slugs of the plans this baseline applies to. Required when target_type is \"platforms\""},"ssh_key_ids":{"type":"array","items":{"type":"string"},"description":"SSH keys the baseline expects on the server"},"user_data_id":{"type":"string","nullable":true,"description":"User data the baseline expects to run on first boot"},"disk_layout":{"type":"array","items":{"$ref":"#/components/schemas/baseline_disk_layout_group"},"description":"Expected disk layout"},"bios":{"type":"object","description":"Expected BIOS settings, keyed by setting id"}},"required":["name","target_type","operating_system"]}}}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"baselines","attributes":{"name":"web-fleet-v3","description":"Standard build for the public web tier","target_type":"platforms","operating_system":"ubuntu_22_04_x64_lts","platforms":["g3-l40s-small-76"],"ssh_key_ids":["ssh_RLYV8DZ2D5QoE"],"user_data_id":"ud_r0MK4O4kDa95w","disk_layout":[{"role":"os","count":2,"raid_level":"raid-1"},{"role":"storage","count":2,"filesystem":"ext4","mount_point":"/data"}],"bios":{"smt":true,"cstates":false}}}}}}}},"required":true}}},"/baselines/{baseline_id}":{"get":{"summary":"Retrieve baseline","operationId":"get-baseline","tags":["Baselines (Preview)"],"security":[{"Bearer":[]}],"parameters":[{"name":"baseline_id","in":"path","required":true,"description":"Baseline ID","examples":{"Success":{"value":"bl_6059EqYkOQj8p"}},"schema":{"type":"string"}}],"description":"**Preview.** Available to teams with the `baselines_api` feature flag.\n\nRetrieve a single baseline.\n","x-mint":{"href":"/api-reference/get-baseline"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"bl_6059EqYkOQj8p","type":"baselines","attributes":{"name":"baseline-9","description":"Standard build for the web tier","target_type":"all_servers","platforms":[],"ssh_keys":[{"id":"ssh_lpbV0DgRq4AWz","name":"zulauf.example","fingerprint":"31:1a:ae:1b:af:00:30:08:50:d3:9c:4a:90:81:dd:65"}],"user_data":null,"disk_layout":[],"bios":{},"created_at":"2026-07-30T16:21:19.279Z"}}}}},"schema":{"$ref":"#/components/schemas/baseline"}}}}}},"delete":{"summary":"Delete baseline","operationId":"destroy-baseline","tags":["Baselines (Preview)"],"security":[{"Bearer":[]}],"parameters":[{"name":"baseline_id","in":"path","required":true,"description":"Baseline ID","schema":{"type":"string"}}],"description":"**Preview.** Available to teams with the `baselines_api` feature flag.\n\nDelete a baseline.\n","x-mint":{"href":"/api-reference/destroy-baseline"},"responses":{"204":{"description":"No Content"}}}},"/billing/usage":{"get":{"summary":"Retrieve billing usage","operationId":"get-billing-usage","tags":["Billing"],"security":[{"Bearer":[]}],"parameters":[{"name":"filter[products][]","in":"query","schema":{"type":"array","items":{"type":"string"}},"required":false,"description":"Allows to filter the billing usage for specific products. It accepts an array of product ids.\n","examples":{"Success":{"value":["si_aslft06m","si_on0fybnq"]}}},{"name":"filter[plan]","in":"query","required":false,"description":"Accepts a plan name and allows to filter the usage for that plan.\n","schema":{"type":"string"},"examples":{"Success":{"value":"plan.name"}}},{"name":"filter[project]","in":"query","required":true,"examples":{"Success":{"value":"proj_r0MK4O4kDa95w"}},"schema":{"type":"string"}}],"description":"Returns the billing usage of a project\n","x-mint":{"href":"/api-reference/get-billing-usage"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"","type":"billing_usage","attributes":{"project":{"id":"proj_r0MK4O4kDa95w","slug":"fantastic-iron-clock","name":"Fantastic Iron Clock"},"period":{"start":"2025-12-24T15:56:32+00:00","end":"2026-01-24T15:56:32+00:00"},"available_credit_balance":123,"amount":0,"price":0,"products":[],"threshold":10000}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/billing_usage"}}}}}}},"/events":{"get":{"summary":"List events","operationId":"get-events","tags":["Events"],"security":[{"Bearer":[]}],"parameters":[{"name":"filter[author]","in":"query","required":false,"description":"The author ID or email to filter by","schema":{"type":"string"}},{"name":"filter[project]","in":"query","required":false,"description":"The project ID to filter by","schema":{"type":"string"}},{"name":"filter[target_name]","in":"query","schema":{"type":"array","items":{"type":"string"}},"required":false,"description":"The target type(s) of the event to filter by"},{"name":"filter[target_id]","in":"query","required":false,"description":"The target id of the event to filter by","schema":{"type":"string"}},{"name":"filter[action]","in":"query","required":false,"description":"The action performed in event to filter by","schema":{"type":"string"}},{"name":"filter[created_at][gte]","in":"query","required":false,"description":"The created at greater than equal date to filter by, in ISO formatting (yyyy-MM-dd'T'HH:mm:ss)","schema":{"type":"string"}},{"name":"filter[created_at][lte]","in":"query","required":false,"description":"The created at less than equal date to filter by, in ISO formatting (yyyy-MM-dd'T'HH:mm:ss)","schema":{"type":"string"}},{"name":"filter[created_at]","in":"query","schema":{"type":"array","items":{"type":"string"}},"required":false,"description":"The created at between date range date1, date2 (inclusive) to filter by, in ISO formatting (yyyy-MM-dd'T'HH:mm:ss)"},{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"},{"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"},{"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."},{"name":"sort","in":"query","required":false,"description":"Comma-separated sort fields. Prefix a field with `-` for descending order. Supported fields: created_at. Example: `sort=-created_at` sorts by creation date descending.","schema":{"type":"string"}}],"description":"Lists actions performed by users on your account.\n","x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"},{"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}},"x-mint":{"href":"/api-reference/get-events"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"evt_r0MK4O4kDa95w","type":"events","attributes":{"created_at":"2026-01-14T15:56:32+00:00","action":"user_data.create","target":{"id":"ud_QraYDPm5OpjwW","name":"user_data"},"project":{"id":"proj_Av9BVDavORm1W","name":"Enormous Rubber Car","slug":"enormous-rubber-car"},"team":{"id":"team_5EkwwB3BV5Uzo9EpPom8T6Zk6MjG","name":"55 Team"},"author":{"id":"user_1P7kNv94QNtKXLZWMe42hNJ5x6V","name":"Julian Kuvalis","email":"aleshia@stiedemann.test"}}}],"meta":{}}},"ServerDestroy":{"value":{"data":[{"id":"evt_8nKmP2qX9LzRy","type":"events","attributes":{"created_at":"2026-01-07T15:42:15+00:00","action":"servers.destroy","target":{"id":"sv_RLYV8DZ2D5QoE","name":"server"},"project":{"id":"proj_6059EqYkOQj8p","name":"Production Infrastructure","slug":"production-infrastructure"},"team":{"id":"team_XmP9n3K5wVH2LbjQbx8YDl5oB","name":"Engineering Team"},"author":{"id":"user_NYNl38rzNzs4KXL96apwU3WJ5oX8","name":"Jane Smith","email":"jane.smith@example.com"},"properties":{"friendly_id":"da-23-web-01","hostname":"da-23-web-01.dal.example.com","reason":"Server no longer needed"}}}],"meta":{}}},"ServerLock":{"value":{"data":[{"id":"evt_6pWnQ8sY4MzPx","type":"events","attributes":{"created_at":"2026-01-07T11:30:22+00:00","action":"servers.lock","target":{"id":"sv_RLYV8DZ2D5QoE","name":"server"},"project":{"id":"proj_6059EqYkOQj8p","name":"Production Infrastructure","slug":"production-infrastructure"},"team":{"id":"team_XmP9n3K5wVH2LbjQbx8YDl5oB","name":"Engineering Team"},"author":{"id":"user_NYNl38rzNzs4KXL96apwU3WJ5oX8","name":"Jane Smith","email":"jane.smith@example.com"},"properties":{"friendly_id":"da-23-web-01","hostname":"da-23-web-01.dal.example.com"}}}],"meta":{}}},"ServerUnlock":{"value":{"data":[{"id":"evt_3vTpN7qM5KzWx","type":"events","attributes":{"created_at":"2026-01-07T14:28:33+00:00","action":"servers.unlock","target":{"id":"sv_RLYV8DZ2D5QoE","name":"server"},"project":{"id":"proj_6059EqYkOQj8p","name":"Production Infrastructure","slug":"production-infrastructure"},"team":{"id":"team_XmP9n3K5wVH2LbjQbx8YDl5oB","name":"Engineering Team"},"author":{"id":"user_NYNl38rzNzs4KXL96apwU3WJ5oX8","name":"Jane Smith","email":"jane.smith@example.com"},"properties":{"friendly_id":"da-23-web-01","hostname":"da-23-web-01.dal.example.com"}}}],"meta":{}}},"DeploymentFailed":{"value":{"data":[{"id":"evt_9mXpL4rK8NzTv","type":"events","attributes":{"created_at":"2026-01-07T13:15:42+00:00","action":"deployment.failed","target":{"id":"sv_RLYV8DZ2D5QoE","name":"server"},"project":{"id":"proj_6059EqYkOQj8p","name":"Production Infrastructure","slug":"production-infrastructure"},"team":{"id":"team_XmP9n3K5wVH2LbjQbx8YDl5oB","name":"Engineering Team"},"author":{"id":"user_NYNl38rzNzs4KXL96apwU3WJ5oX8","name":"Jane Smith","email":"jane.smith@example.com"},"properties":{"friendly_id":"da-23-web-01","hostname":"da-23-web-01.dal.example.com","distro":"ubuntu_22_04_x64_lts","operating_system":"Ubuntu 22.04 LTS","region":"Dallas"}}}],"meta":{}}},"ReinstallFailed":{"value":{"data":[{"id":"evt_5kQpN9rX3LzMy","type":"events","attributes":{"created_at":"2026-01-07T12:05:18+00:00","action":"reinstall.failed","target":{"id":"sv_RLYV8DZ2D5QoE","name":"server"},"project":{"id":"proj_6059EqYkOQj8p","name":"Production Infrastructure","slug":"production-infrastructure"},"team":{"id":"team_XmP9n3K5wVH2LbjQbx8YDl5oB","name":"Engineering Team"},"author":{"id":"user_NYNl38rzNzs4KXL96apwU3WJ5oX8","name":"Jane Smith","email":"jane.smith@example.com"},"properties":{"friendly_id":"da-23-web-01","hostname":"da-23-web-01.dal.example.com","distro":"ubuntu_22_04_x64_lts","operating_system":"Ubuntu 22.04 LTS","region":"Dallas"}}}],"meta":{}}},"ScheduleDeletion":{"value":{"data":[{"id":"evt_7rXpM5tN2KzVw","type":"events","attributes":{"created_at":"2026-01-07T10:15:08+00:00","action":"schedule_deletion.create","target":{"id":"sv_RLYV8DZ2D5QoE","name":"server"},"project":{"id":"proj_6059EqYkOQj8p","name":"Production Infrastructure","slug":"production-infrastructure"},"team":{"id":"team_XmP9n3K5wVH2LbjQbx8YDl5oB","name":"Engineering Team"},"author":{"id":"user_NYNl38rzNzs4KXL96apwU3WJ5oX8","name":"Jane Smith","email":"jane.smith@example.com"},"properties":{"friendly_id":"da-23-web-01","hostname":"da-23-web-01.dal.example.com"}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/events"}}}}}}},"/firewalls/assignments":{"get":{"summary":"List firewall assignments","operationId":"get-all-firewall-assignments","description":"Returns a list of all servers and virtual machines assigned to one or more firewalls.","tags":["Firewalls"],"security":[{"Bearer":[]}],"parameters":[{"name":"filter[server]","in":"query","required":false,"description":"The server ID to filter by","schema":{"type":"string"},"examples":{"Success":{"value":"sv_Qk0Ryqv1dW36X"}}},{"name":"filter[virtual_machine]","in":"query","required":false,"description":"The virtual machine ID to filter by","schema":{"type":"string"}},{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"},{"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}],"x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"},{"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}},"x-mint":{"href":"/api-reference/get-all-firewall-assignments"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"fwasg_zGr47qlMDAg0m","type":"firewall_assignments","attributes":{"server":{"id":"sv_Qk0Ryqv1dW36X","hostname":"Heavy Duty Silk Bottle","primary_ipv4":"237.198.84.1"},"firewall":{"id":"fw_pRMLydp0dQKr1","name":"Welch LLC"}}},{"id":"fwasg_w5AEmq7XDBkWX","type":"firewall_assignments","attributes":{"server":{"id":"sv_Qk0Ryqv1dW36X","hostname":"Heavy Duty Silk Bottle","primary_ipv4":"237.198.84.1"},"firewall":{"id":"fw_zGr47qlMDAg0m","name":"Corkery-Windler"}}}]}}},"schema":{"$ref":"#/components/schemas/firewall_assignments"}}}}}}},"/elastic_ips":{"get":{"summary":"List Elastic IPs","operationId":"list-elastic-ips","tags":["Elastic Ips"],"security":[{"Bearer":[]}],"parameters":[{"name":"filter[project]","in":"query","required":false,"description":"The project ID or slug to filter by","schema":{"type":"string"}},{"name":"filter[server]","in":"query","required":false,"description":"The server ID to filter by","schema":{"type":"string"}},{"name":"filter[status]","in":"query","required":false,"description":"The status to filter by","schema":{"type":"string","enum":["configuring","active","moving","releasing","error"]}},{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"},{"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}],"description":"List all Elastic IPs for the authenticated team. Elastic IPs are static public IP addresses that can be assigned to servers and moved between servers within the same project.\n","x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"},{"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}},"x-mint":{"href":"/api-reference/list-elastic-ips"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"eip_KeQbB4BoO6x10","type":"elastic_ips","attributes":{"address":"177.54.156.7","family":"IPv4","prefix_length":32,"mode":"routed","status":"active","created_at":"2026-02-24T17:06:28.108Z","server":{"id":"sv_2GmAlJ6BXlK1a","hostname":"my-server","primary_ipv4":"177.54.157.75"},"project":{"id":"proj_AoW6vRnwkvLn0","name":"My Project","slug":"my-project"},"region":{"id":"region_sa_sao_paulo","name":"São Paulo","location":{"id":"site_sao","name":"São Paulo","slug":"SAO"}}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/elastic_ips"}}}}}},"post":{"summary":"Create an Elastic IP","operationId":"create-elastic-ip","tags":["Elastic Ips"],"security":[{"Bearer":[]}],"parameters":[],"description":"Creates a new Elastic IP and assigns it to the specified server. The IP is provisioned asynchronously—the response will show status `configuring` and the `id` will be `null` until provisioning completes. Currently only IPv4 /32 addresses in routed mode are supported.\n","x-mint":{"href":"/api-reference/create-elastic-ip"},"responses":{"202":{"description":"Accepted","content":{"application/vnd.api+json":{"examples":{"Accepted":{"value":{"data":{"id":null,"type":"elastic_ips","attributes":{"address":"177.54.156.7","status":"configuring","project":{"id":"proj_AoW6vRnwkvLn0","name":"My Project","slug":"my-project"}}}}}},"schema":{"$ref":"#/components/schemas/elastic_ip"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ServerNotInProject":{"value":{"errors":[{"code":"SERVER_NOT_IN_PROJECT","message":"Server must belong to the specified project"}]}},"IpAllocationFailed":{"value":{"errors":[{"code":"IP_ALLOCATION_FAILED","message":"Failed to allocate IP address"}]}},"SiteNotSupported":{"value":{"errors":[{"code":"SITE_NOT_SUPPORTED","title":"Site Not Supported","status":"422","detail":"Elastic IPs are not available for site SAO"}]}},"ServerNetworkIncompatible":{"value":{"errors":[{"code":"SERVER_NETWORK_INCOMPATIBLE","title":"Server Network Incompatible","status":"422","detail":"Your server has outdated network configuration and we cannot enable elastic IP for it. Please reach out to support"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/create_elastic_ip"},"examples":{"Create":{"summary":"Create an Elastic IP","value":{"data":{"type":"elastic_ips","attributes":{"project_id":"proj_AoW6vRnwkvLn0","server_id":"sv_2GmAlJ6BXlK1a"}}}}}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/create_elastic_ip"},"examples":{"Create":{"summary":"Create an Elastic IP","value":{"data":{"type":"elastic_ips","attributes":{"project_id":"proj_AoW6vRnwkvLn0","server_id":"sv_2GmAlJ6BXlK1a"}}}}}}},"required":true}}},"/elastic_ips/{elastic_ip_id}":{"get":{"summary":"Retrieve an Elastic IP","operationId":"get-elastic-ip","tags":["Elastic Ips"],"security":[{"Bearer":[]}],"parameters":[{"name":"elastic_ip_id","in":"path","description":"The Elastic IP ID","required":true,"examples":{"Success":{"value":"eip_KeQbB4BoO6x10"}},"schema":{"type":"string"}}],"description":"Returns a single Elastic IP by its ID.\n","x-mint":{"href":"/api-reference/get-elastic-ip"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"eip_KeQbB4BoO6x10","type":"elastic_ips","attributes":{"address":"177.54.156.7","family":"IPv4","prefix_length":32,"mode":"routed","status":"active","created_at":"2026-02-24T17:06:28.108Z","server":{"id":"sv_2GmAlJ6BXlK1a","hostname":"my-server","primary_ipv4":"177.54.157.75"},"project":{"id":"proj_AoW6vRnwkvLn0","name":"My Project","slug":"my-project"},"region":{"id":"region_sa_sao_paulo","name":"São Paulo","location":{"id":"site_sao","name":"São Paulo","slug":"SAO"}}}}}}},"schema":{"$ref":"#/components/schemas/elastic_ip"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}}}},"patch":{"summary":"Move an Elastic IP","operationId":"update-elastic-ip","tags":["Elastic Ips"],"security":[{"Bearer":[]}],"parameters":[{"name":"elastic_ip_id","in":"path","description":"The Elastic IP ID","required":true,"examples":{"Success":{"value":"eip_KeQbB4BoO6x10"}},"schema":{"type":"string"}}],"description":"Moves an Elastic IP to a different server within the same project and site. The reassignment is performed asynchronously. The Elastic IP must be in `active` status, the target server must belong to the same project, and the target server must be in the same site as the currently assigned server.\n","x-mint":{"href":"/api-reference/update-elastic-ip"},"responses":{"202":{"description":"Accepted","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"eip_KeQbB4BoO6x10","type":"elastic_ips","attributes":{"address":"177.54.156.7","family":"IPv4","prefix_length":32,"mode":"routed","status":"moving","created_at":"2026-02-24T17:06:28.108Z","server":{"id":"sv_oDEBlwBGRO2me","hostname":"new-server","primary_ipv4":"177.54.157.180","operating_system":"ubuntu_24_04_x64_lts"},"project":{"id":"proj_AoW6vRnwkvLn0","name":"My Project","slug":"my-project"},"region":{"id":"region_sa_sao_paulo","name":"São Paulo","location":{"id":"site_sao","name":"São Paulo","slug":"SAO"}}}}}}},"schema":{"$ref":"#/components/schemas/elastic_ip"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ElasticIpNotActive":{"value":{"errors":[{"code":"ELASTIC_IP_NOT_ACTIVE","message":"Elastic IP must be in active status to move"}]}},"ServerNotInProject":{"value":{"errors":[{"code":"SERVER_NOT_IN_PROJECT","message":"Target server must belong to the same project"}]}},"SiteNotSupported":{"value":{"errors":[{"code":"SITE_NOT_SUPPORTED","title":"Site Not Supported","status":"422","detail":"Elastic IPs are not available for site SAO"}]}},"ServerNetworkIncompatible":{"value":{"errors":[{"code":"SERVER_NETWORK_INCOMPATIBLE","title":"Server Network Incompatible","status":"422","detail":"Your server has outdated network configuration and we cannot enable elastic IP for it. Please reach out to support"}]}},"SiteMismatch":{"value":{"errors":[{"code":"SITE_MISMATCH","title":"Site Mismatch","status":"422","detail":"Elastic IP cannot be moved to a server in a different site"}]}},"BgpElasticIpNotUpdatable":{"value":{"errors":[{"code":"BGP_ELASTIC_IP_NOT_UPDATABLE","status":"422","title":"BGP Elastic IP Not Updatable","detail":"A BGP elastic IP is not moved between servers. Manage the servers announcing it through /elastic_ips/ueip_xxx/bgp_sessions"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/update_elastic_ip"},"examples":{"Move":{"summary":"Move to another server","value":{"data":{"type":"elastic_ips","attributes":{"server_id":"sv_oDEBlwBGRO2me"}}}}}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/update_elastic_ip"},"examples":{"Move":{"summary":"Move to another server","value":{"data":{"type":"elastic_ips","attributes":{"server_id":"sv_oDEBlwBGRO2me"}}}}}}},"required":true}},"delete":{"summary":"Release an Elastic IP","operationId":"delete-elastic-ip","tags":["Elastic Ips"],"security":[{"Bearer":[]}],"parameters":[{"name":"elastic_ip_id","in":"path","description":"The Elastic IP ID","required":true,"schema":{"type":"string"}}],"description":"Releases an Elastic IP, returning it to the available pool. The IP will transition to `releasing` status before being fully removed. Only Elastic IPs with status `active` or `error` can be released.\n","x-mint":{"href":"/api-reference/delete-elastic-ip"},"responses":{"204":{"description":"No Content"},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ElasticIpNotReleasable":{"value":{"errors":[{"code":"ELASTIC_IP_NOT_RELEASABLE","message":"Only Elastic IPs with status active or error can be released"}]}},"ElasticIpHasBgpSessions":{"value":{"errors":[{"code":"ELASTIC_IP_HAS_BGP_SESSIONS","status":"422","title":"Elastic IP Has BGP Sessions","detail":"This elastic IP still announces BGP sessions. Remove them before releasing it."}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}}},"/elastic_ips/{elastic_ip_id}/bgp_sessions":{"post":{"summary":"Create a BGP session","operationId":"create-elastic-ip-bgp-session","description":"Announce an elastic IP from a server over BGP","tags":["Elastic Ips"],"security":[{"Bearer":[]}],"parameters":[{"name":"elastic_ip_id","in":"path","required":true,"examples":{"Accepted":{"value":"ueip_059EqY7kOQj8p"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/create-elastic-ip-bgp-session"},"responses":{"202":{"description":"Accepted","content":{"application/vnd.api+json":{"examples":{"Accepted":{"value":{"data":{"id":"bgps_w49QDB9PqagKb","type":"bgp_sessions","attributes":{"status":"pending","status_message":null,"server_ip":null,"asn":null,"created_at":null,"server":{"id":"sv_A05EdQp4OvKYQ","hostname":"para-bgp-3","primary_ipv4":"162.43.189.161","operating_system":"ubuntu_24_04_x64_lts"},"region":{"id":"reg_qOxWMz15VGAwd","name":"United States","location":{"id":"loc_Yb7VpP53OjxEr","name":"Los Angeles 2","slug":"LAX2"}}}}}}},"schema":{"$ref":"#/components/schemas/bgp_session"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/create_bgp_session"},"examples":{"Accepted":{"summary":"Accepted","value":{"data":{"type":"bgp_sessions","attributes":{"server_id":"sv_A05EdQp4OvKYQ"}}}}}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/create_bgp_session"},"examples":{"Accepted":{"summary":"Accepted","value":{"data":{"type":"bgp_sessions","attributes":{"server_id":"sv_A05EdQp4OvKYQ"}}}}}}},"required":true}},"get":{"summary":"List BGP sessions","operationId":"list-elastic-ip-bgp-sessions","description":"List the BGP sessions announcing an elastic IP","tags":["Elastic Ips"],"security":[{"Bearer":[]}],"parameters":[{"name":"elastic_ip_id","in":"path","required":true,"examples":{"Success":{"value":"ueip_v9BVDaGvdRm1W"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/list-elastic-ip-bgp-sessions"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"bgps_w49QDB9PqagKb","type":"bgp_sessions","attributes":{"status":"active","status_message":null,"server_ip":"162.43.189.161","asn":65001,"created_at":"2026-07-24T10:00:00Z","server":{"id":"sv_A05EdQp4OvKYQ","hostname":"para-bgp-3","primary_ipv4":"162.43.189.161","operating_system":"ubuntu_24_04_x64_lts"},"region":{"id":"reg_qOxWMz15VGAwd","name":"United States","location":{"id":"loc_Yb7VpP53OjxEr","name":"Los Angeles 2","slug":"LAX2"}}}}]}}},"schema":{"$ref":"#/components/schemas/bgp_sessions"}}}}}}},"/elastic_ips/{elastic_ip_id}/bgp_sessions/{id}":{"get":{"summary":"Retrieve a BGP session","operationId":"get-elastic-ip-bgp-session","description":"Retrieve a BGP session announcing an elastic IP","tags":["Elastic Ips"],"security":[{"Bearer":[]}],"parameters":[{"name":"elastic_ip_id","in":"path","required":true,"examples":{"Success":{"value":"ueip_e8pKq015DWAob"}},"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"examples":{"Success":{"value":"bgps_w49QDB9PqagKb"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-elastic-ip-bgp-session"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"bgps_w49QDB9PqagKb","type":"bgp_sessions","attributes":{"status":"active","status_message":null,"server_ip":"162.43.189.161","asn":65001,"created_at":"2026-07-24T10:00:00Z","server":{"id":"sv_A05EdQp4OvKYQ","hostname":"para-bgp-3","primary_ipv4":"162.43.189.161","operating_system":"ubuntu_24_04_x64_lts"},"region":{"id":"reg_qOxWMz15VGAwd","name":"United States","location":{"id":"loc_Yb7VpP53OjxEr","name":"Los Angeles 2","slug":"LAX2"}}}}}}},"schema":{"$ref":"#/components/schemas/bgp_session"}}}}}},"delete":{"summary":"Delete a BGP session","operationId":"delete-elastic-ip-bgp-session","description":"Stop announcing an elastic IP from a server","tags":["Elastic Ips"],"security":[{"Bearer":[]}],"parameters":[{"name":"elastic_ip_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"force","in":"query","required":false,"schema":{"type":"boolean"}}],"x-mint":{"href":"/api-reference/delete-elastic-ip-bgp-session"},"responses":{"202":{"description":"Accepted"}}}},"/firewalls":{"post":{"summary":"Create firewall","operationId":"create-firewall","description":"Create a firewall","tags":["Firewalls"],"security":[{"Bearer":[]}],"parameters":[],"x-mint":{"href":"/api-reference/create-firewall"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"fw_w5AEmq7XDBkWX","type":"firewalls","attributes":{"name":"my-firewall","project":{"id":"proj_RLYV8DZ2D5QoE","name":"Heavy Duty Copper Watch","slug":"heavy-duty-copper-watch"},"rules":[{"from":"192.168.42.73","to":"192.168.43.51","port":"80","protocol":"TCP","default":false},{"from":"192.168.1.16","to":"192.168.1.30","port":"80","protocol":"TCP","default":false},{"from":"192.168.1.10","to":"192.168.1.20","port":"3000-4000","protocol":"UDP","default":false}]}}}}},"schema":{"$ref":"#/components/schemas/firewall"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["firewalls"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"project":{"type":"string"},"tags":{"type":"array","description":"IDs of the tags to attach to the firewall","items":{"type":"string"}},"rules":{"type":"array","description":"Firewall rules. When empty, Latitude seeds a default rule allowing SSH (TCP port 22) from any source.","items":{"type":"object","properties":{"from":{"type":"string","description":"Source IP address, IP range in CIDR notation, or 'ANY' (e.g., \"192.168.1.1\", \"192.168.1.0/24\", \"ANY\")"},"to":{"type":"string","description":"Destination IP address, IP range in CIDR notation, or 'ANY' (e.g., \"192.168.1.1\", \"192.168.1.0/24\", \"ANY\")"},"protocol":{"type":"string","enum":["TCP","UDP"]},"port":{"type":"string","description":"Port number or range (e.g., \"80\", \"80-443\")"},"description":{"type":"string","nullable":true,"description":"Optional description explaining the purpose of this rule"}}}}},"required":["name","project"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"firewalls","attributes":{"name":"my-firewall","project":"heavy-duty-copper-watch","rules":[{"from":"192.168.42.73","to":"192.168.43.51","port":80,"protocol":"TCP","description":"Allow HTTP traffic"},{"from":"192.168.1.16","to":"192.168.1.30","port":"80","protocol":"TCP"},{"from":"192.168.1.10","to":"192.168.1.20","port":"3000-4000","protocol":"UDP","description":"Application ports"}]}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["firewalls"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"project":{"type":"string"},"tags":{"type":"array","description":"IDs of the tags to attach to the firewall","items":{"type":"string"}},"rules":{"type":"array","description":"Firewall rules. When empty, Latitude seeds a default rule allowing SSH (TCP port 22) from any source.","items":{"type":"object","properties":{"from":{"type":"string","description":"Source IP address, IP range in CIDR notation, or 'ANY' (e.g., \"192.168.1.1\", \"192.168.1.0/24\", \"ANY\")"},"to":{"type":"string","description":"Destination IP address, IP range in CIDR notation, or 'ANY' (e.g., \"192.168.1.1\", \"192.168.1.0/24\", \"ANY\")"},"protocol":{"type":"string","enum":["TCP","UDP"]},"port":{"type":"string","description":"Port number or range (e.g., \"80\", \"80-443\")"},"description":{"type":"string","nullable":true,"description":"Optional description explaining the purpose of this rule"}}}}},"required":["name","project"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"firewalls","attributes":{"name":"my-firewall","project":"heavy-duty-copper-watch","rules":[{"from":"192.168.42.73","to":"192.168.43.51","port":80,"protocol":"TCP","description":"Allow HTTP traffic"},{"from":"192.168.1.16","to":"192.168.1.30","port":"80","protocol":"TCP"},{"from":"192.168.1.10","to":"192.168.1.20","port":"3000-4000","protocol":"UDP","description":"Application ports"}]}}}}}}},"required":true}},"get":{"summary":"List firewalls","operationId":"list-firewalls","description":"List firewalls","tags":["Firewalls"],"security":[{"Bearer":[]}],"parameters":[{"name":"filter[project]","in":"query","required":false,"schema":{"type":"string"},"examples":{"Success":{"value":"intelligent-marble-lamp"}}},{"name":"filter[tags]","in":"query","required":false,"description":"Comma-separated tag IDs. Returns firewalls that have all the given tags.","schema":{"type":"string"}},{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"},{"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}],"x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"},{"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}},"x-mint":{"href":"/api-reference/list-firewalls"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"fw_VaNmodjeObE8W","type":"firewalls","attributes":{"name":"Carroll-Purdy","project":{"id":"proj_2695BdKrOevVo","name":"Intelligent Marble Lamp","slug":"intelligent-marble-lamp"},"rules":[{"from":"150.186.180.30","to":"115.157.70.5","port":"80","protocol":"TCP","default":false}]}}]}}},"schema":{"$ref":"#/components/schemas/firewalls"}}}}}}},"/firewalls/{firewall_id}":{"get":{"summary":"Retrieve firewall","operationId":"get-firewall","description":"Returns a single firewall by its ID.","tags":["Firewalls"],"security":[{"Bearer":[]}],"parameters":[{"name":"firewall_id","in":"path","description":"The Firewall ID","required":true,"examples":{"Success":{"value":"fw_6A05EdQ1dvKYQ"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-firewall"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"fw_6A05EdQ1dvKYQ","type":"firewalls","attributes":{"name":"D'Amore-Nienow","project":{"id":"proj_byQrJdNJd30gv","name":"Rustic Steel Plate","slug":"rustic-steel-plate"},"rules":[{"from":"233.62.24.172","to":"20.231.71.178","port":"80","protocol":"TCP","default":false},{"from":"242.23.216.53","to":"136.56.111.45","port":"80","protocol":"TCP","default":false}]}}}}},"schema":{"$ref":"#/components/schemas/firewall"}}}}}},"patch":{"summary":"Update firewall","operationId":"update-firewall","description":"Updates a firewall by its ID.","tags":["Firewalls"],"security":[{"Bearer":[]}],"parameters":[{"name":"firewall_id","in":"path","description":"The Firewall ID","required":true,"examples":{"Success":{"value":"fw_r0MK4O4kDa95w"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/update-firewall"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"fw_r0MK4O4kDa95w","type":"firewalls","attributes":{"name":"new-name","project":{"id":"proj_aKXgRdR3qv9k5","name":"Rustic Wooden Clock","slug":"rustic-wooden-clock"},"rules":[{"from":"192.168.42.72","to":"192.168.43.51","port":"80","protocol":"TCP","default":false}]}}}}},"schema":{"$ref":"#/components/schemas/firewall"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["firewalls"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"tags":{"type":"array","description":"IDs of the tags to attach to the firewall. Replaces the current tags; send an empty array to remove all tags.","items":{"type":"string"}},"rules":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"protocol":{"type":"string","enum":["TCP","UDP"]},"port":{"type":"string","description":"Port number or range (e.g., \"80\", \"80-443\")"},"description":{"type":"string","nullable":true,"description":"Optional description explaining the purpose of this rule"}}}}}}},"required":["type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"type":"firewalls","attributes":{"name":"new-name","rules":[{"from":"192.168.42.72","to":"192.168.43.51","port":80,"protocol":"TCP","description":"Allow HTTP"}]}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["firewalls"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"tags":{"type":"array","description":"IDs of the tags to attach to the firewall. Replaces the current tags; send an empty array to remove all tags.","items":{"type":"string"}},"rules":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"protocol":{"type":"string","enum":["TCP","UDP"]},"port":{"type":"string","description":"Port number or range (e.g., \"80\", \"80-443\")"},"description":{"type":"string","nullable":true,"description":"Optional description explaining the purpose of this rule"}}}}}}},"required":["type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"type":"firewalls","attributes":{"name":"new-name","rules":[{"from":"192.168.42.72","to":"192.168.43.51","port":80,"protocol":"TCP","description":"Allow HTTP"}]}}}}}}},"required":true}},"delete":{"summary":"Delete firewall","operationId":"delete-firewall","tags":["Firewalls"],"security":[{"Bearer":[]}],"parameters":[{"name":"firewall_id","in":"path","description":"The Firewall ID","required":true,"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/delete-firewall"},"responses":{"204":{"description":"No Content"}}}},"/firewalls/{firewall_id}/assignments":{"post":{"summary":"Assign server to firewall","operationId":"create-firewall-assignment","description":"Assigns a server or a virtual machine to a firewall by its ID.","tags":["Firewalls"],"security":[{"Bearer":[]}],"parameters":[{"name":"firewall_id","in":"path","description":"The Firewall ID","required":true,"examples":{"Created":{"value":"fw_Ee8pKq05DWAob"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/create-firewall-assignment"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"fwasg_6VE1Wd37dXnZJ","type":"firewall_assignments","attributes":{"server":{"id":"sv_aKXgRdR3qv9k5","hostname":"Ergonomic Wooden Keyboard","primary_ipv4":"132.192.74.198"},"firewall_id":"fw_Ee8pKq05DWAob"}}}}},"schema":{"$ref":"#/components/schemas/firewall_server"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["firewall_assignments"]},"attributes":{"type":"object","properties":{"server_id":{"type":"string","description":"The server ID to assign. Provide exactly one of server_id or virtual_machine_id."},"virtual_machine_id":{"type":"string","description":"The virtual machine ID to assign. Provide exactly one of server_id or virtual_machine_id. A virtual machine can be assigned to at most one firewall."}}}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"firewall_assignments","attributes":{"server_id":"sv_aKXgRdR3qv9k5"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["firewall_assignments"]},"attributes":{"type":"object","properties":{"server_id":{"type":"string","description":"The server ID to assign. Provide exactly one of server_id or virtual_machine_id."},"virtual_machine_id":{"type":"string","description":"The virtual machine ID to assign. Provide exactly one of server_id or virtual_machine_id. A virtual machine can be assigned to at most one firewall."}}}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"firewall_assignments","attributes":{"server_id":"sv_aKXgRdR3qv9k5"}}}}}}},"required":true}},"get":{"summary":"Firewall assignments","operationId":"get-firewall-assignments","description":"Returns a list of all servers and virtual machines assigned to a particular firewall.","tags":["Firewalls"],"security":[{"Bearer":[]}],"parameters":[{"name":"firewall_id","in":"path","description":"The Firewall ID","required":true,"examples":{"Success":{"value":"fw_Qk0Ryqv1dW36X"}},"schema":{"type":"string"}},{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"},{"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}],"x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"},{"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}},"x-mint":{"href":"/api-reference/get-firewall-assignments"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"fwasg_6A05EdQ1dvKYQ","type":"firewall_assignments","attributes":{"server":{"id":"sv_1Qkm7dXzD8nZV","hostname":"Durable Concrete Lamp","primary_ipv4":"114.216.142.237"},"firewall_id":"fw_Qk0Ryqv1dW36X"}},{"id":"fwasg_ez2A3DVldnawP","type":"firewall_assignments","attributes":{"server":{"id":"sv_m5xyZOnNOWM0l","hostname":"Rustic Cotton Clock","primary_ipv4":"27.26.3.128"},"firewall_id":"fw_Qk0Ryqv1dW36X"}}]}}},"schema":{"$ref":"#/components/schemas/firewall_assignments"}}}}}}},"/firewalls/{firewall_id}/assignments/{assignment_id}":{"delete":{"summary":"Delete assignment","operationId":"delete-firewall-assignment","description":"Removes a server or a virtual machine from a firewall by its assignment ID.","tags":["Firewalls"],"security":[{"Bearer":[]}],"parameters":[{"name":"firewall_id","in":"path","description":"The Firewall ID","required":true,"schema":{"type":"string"}},{"name":"assignment_id","in":"path","description":"The Assignment ID","required":true,"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/delete-firewall-assignment"},"responses":{"204":{"description":"No Content"}}}},"/ips":{"get":{"summary":"List IPs","operationId":"get-ips","tags":["IP Addresses"],"security":[{"Bearer":[]}],"parameters":[{"name":"filter[server]","in":"query","required":false,"description":"The server ID to filter by","schema":{"type":"string"}},{"name":"filter[project]","in":"query","required":false,"description":"The project ID or Slug to filter by","schema":{"type":"string"}},{"name":"filter[family]","in":"query","schema":{"type":"string","enum":["IPv4","IPv6"]},"required":false,"description":"The protocol family to filter by"},{"name":"filter[type]","in":"query","schema":{"type":"string","enum":["private","public","elastic"]},"required":false,"description":"The protocol type to filter by"},{"name":"filter[location]","in":"query","required":false,"description":"The site slug to filter by","schema":{"type":"string"}},{"name":"filter[address]","in":"query","required":false,"description":"The address of IP to filter by starts_with","schema":{"type":"string"}},{"name":"filter[additional]","in":"query","schema":{"type":"boolean"},"required":false,"description":"Filter by additional IPs (true) or management IPs (false)"},{"name":"filter[available]","in":"query","schema":{"type":"boolean"},"required":false,"description":"Filter by unassigned IPs (true) or assigned IPs (false)"},{"name":"filter[management]","in":"query","schema":{"type":"boolean"},"required":false,"description":"Filter by management IPs (true) or additional/elastic IPs (false)"},{"name":"extra_fields[ip_addresses]","in":"query","required":false,"description":"The `region` and `server` are provided as extra attributes that are lazy loaded. To request it, just set `extra_fields[ip_addresses]=region,server` in the query string.","schema":{"type":"string"}},{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"},{"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"},{"name":"stats[total]","in":"query","required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`.","schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"description":"Comma-separated sort fields. Prefix a field with `-` for descending order. Supported fields: address, family, type, created_at. Example: `sort=type,-created_at` sorts by type ascending, then by creation date descending.","schema":{"type":"string"}}],"description":"List all Management and Additional IP Addresses.\n • Management IPs are IPs that are used for the management IP of a device.\n   This is a public IP address that a device is born and dies with. It never changes during the lifecycle of the device.\n • Additional IPs are individual IPs that can be added to a device as an additional IP that can be used.\n","x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"},{"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}},"x-mint":{"href":"/api-reference/get-ips"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"ip_5AEmq7wXqBkWX","type":"ip_addresses","attributes":{"address":"110.190.5.254","cidr":null,"family":"IPv4","gateway":null,"netmask":"255.255.255.255","type":"Public","public":true,"management":true,"additional":false,"project":{"id":"proj_lkg1DeVgOvZE5","name":"Incredible Silk Keyboard"},"region":{},"available":true,"assignment":{}}},{"id":"ip_Gr47qleMDAg0m","type":"ip_addresses","attributes":{"address":"180.228.210.136","cidr":null,"family":"IPv4","gateway":null,"netmask":"255.255.255.255","type":"Public","public":true,"management":true,"additional":false,"project":{"id":"proj_lkg1DeVgOvZE5","name":"Incredible Silk Keyboard"},"region":{},"available":true,"assignment":{}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/ip_addresses"}}}}}}},"/ips/{ip_id}":{"get":{"summary":"Retrieve an IP","operationId":"get-ip","tags":["IP Addresses"],"security":[{"Bearer":[]}],"parameters":[{"name":"ip_id","in":"path","description":"The IP Address ID","required":true,"schema":{"type":"string"}},{"name":"extra_fields[ip_addresses]","in":"query","required":false,"description":"The `region` and `server` are provided as extra attributes that are lazy loaded. To request it, just set `extra_fields[ip_addresses]=region,server` in the query string.","schema":{"type":"string"}}],"description":"Retrieve an IP Address","x-mint":{"href":"/api-reference/get-ip"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/ip_address"}}}}}}},"/team/members":{"get":{"summary":"List members","operationId":"get-team-members","tags":["Team members"],"security":[{"Bearer":[]}],"parameters":[{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"},{"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"},{"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}],"x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"},{"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}},"x-mint":{"href":"/api-reference/get-team-members"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"user_4V815bRpPLCKKQnvA2yESr5Q8Px","type":"users","attributes":{"first_name":"Arron","last_name":"Flatley","email":"gabrielle@carter.example","mfa_enabled":false,"created_at":"2025-10-31T00:00:00+00:00","updated_at":"2026-11-15T00:00:00+00:00","last_login_at":null,"role":{"id":"role_0W0Q8EJMrViyEkP5KBzzHNP4v48","name":"billing"}}},{"id":"user_YLNGPAYPAotoo2mZRv59SGLKQW7n","type":"users","attributes":{"first_name":"Kathryne","last_name":"Purdy","email":"hilaria.rutherford@lowe.test","mfa_enabled":false,"created_at":"2025-05-31T00:00:00+00:00","updated_at":"2026-10-22T00:00:00+00:00","last_login_at":null,"role":{"id":"role_o41aor9xVMSzmNM5eQN4TkJbv42","name":"owner"}}},{"id":"user_LxZl44k6rJtLBAYg67L7F5o3AkJP","type":"users","attributes":{"first_name":"Myles","last_name":"Lesch","email":"manual@marquardt-lueilwitz.example","mfa_enabled":false,"created_at":"2025-02-22T00:00:00+00:00","updated_at":"2026-09-20T00:00:00+00:00","last_login_at":"2025-08-05T00:00:00+00:00","role":{"id":"role_o41aor9xVMSzmNM5eQN4TkJbv42","name":"owner"}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/team_members"}}}}}},"post":{"summary":"Create member","operationId":"post-team-members","tags":["Team members"],"security":[{"Bearer":[]}],"parameters":[],"x-mint":{"href":"/api-reference/post-team-members"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"user_pbV0Dgykd4AWz","type":"memberships","attributes":{"first_name":"Maricela","last_name":"Torphy","email":"maritza_schneider@mcglynn.test","role":"collaborator","mfa_enabled":false,"created_at":"2026-01-14T15:56:36+00:00","updated_at":"2026-01-14T15:56:36+00:00"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/membership"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["memberships"]},"attributes":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"role":{"type":"string","enum":["owner","administrator","collaborator","billing"]}},"required":["email","role"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"teams","attributes":{"first_name":"Maricela","last_name":"Torphy","email":"maritza_schneider@mcglynn.test","role":"collaborator"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["memberships"]},"attributes":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"role":{"type":"string","enum":["owner","administrator","collaborator","billing"]}},"required":["email","role"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"teams","attributes":{"first_name":"Maricela","last_name":"Torphy","email":"maritza_schneider@mcglynn.test","role":"collaborator"}}}}}}},"required":true}}},"/team/members/{user_id}":{"delete":{"summary":"Remove a member","operationId":"destroy-team-member","tags":["Team members"],"parameters":[{"name":"user_id","in":"path","description":"The user ID","required":true,"examples":{"Success":{"value":"user_0MoLqJEYd57pY"}},"schema":{"type":"string"}}],"security":[{"Bearer":[]}],"x-mint":{"href":"/api-reference/destroy-team-member"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"meta":{}}}}}}}}}},"/plans/operating_systems":{"get":{"summary":"List operating systems","operationId":"get-plans-operating-system","tags":["Operating Systems"],"security":[{"Bearer":[]}],"description":"Lists all operating systems available to deploy and reinstall.\n","parameters":[{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"},{"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"},{"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}],"x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"},{"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}},"x-mint":{"href":"/api-reference/get-plans-operating-system"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"os_mw49QDB5qagKb","type":"operating_system","attributes":{"name":"windows_server_2012_r2_std_v281 11.77","distro":"CentOS 1","slug":"debian_121","version":"11.77","user":"Rosalinda","features":{},"provisionable_on":["g3.a100.medium-39","c2.medium.x86-40"]}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/operating_systems"}}}}}}},"/kubernetes_clusters":{"post":{"summary":"Create a Kubernetes Cluster","operationId":"create-kubernetes-cluster","tags":["Kubernetes Clusters"],"security":[{"Bearer":[]}],"parameters":[],"description":"Creates a new managed Kubernetes cluster. Maximum of 1 cluster per project.\n\n**Note:** Only users with the `owner`, `administrator`, or `collaborator` role can create clusters. Users with the `billing` role cannot perform this action.\n\nCluster names must follow Kubernetes naming rules: lowercase alphanumeric characters or hyphens, must start and end with an alphanumeric character, and be at most 63 characters long.\n","responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"type":"kubernetes_clusters","id":"kc_pRMLydp0dQKr1","attributes":{"name":"my-cluster","status":"provisioning","control_plane_endpoint":"https://api.my-cluster.example.com:6443"}}}}},"schema":{"$ref":"#/components/schemas/kubernetes_cluster_create_response"}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"examples":{"ValidationError":{"value":{"errors":[{"code":"VALIDATION_ERROR","message":"Project ID is required"}]}},"InvalidSshKeys":{"value":{"errors":[{"code":"VALIDATION_ERROR","message":"One or more SSH keys not found or not owned by your team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Managed Kubernetes is not enabled for this team"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"FORBIDDEN","message":"You are not authorized to perform this action"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ClusterLimitExceeded":{"value":{"errors":[{"code":"CLUSTER_LIMIT_EXCEEDED","message":"Only 1 cluster per project is allowed"}]}},"NoAvailableIP":{"value":{"errors":[{"code":"NO_AVAILABLE_IP","message":"Failed to allocate LoadBalancer IP: No available IP found"}]}},"InvalidSite":{"value":{"errors":[{"code":"INVALID_SITE","message":"Site not found"}]}},"SiteNotSupported":{"value":{"errors":[{"code":"SITE_NOT_SUPPORTED","message":"Managed Kubernetes is not available at site MIA. Available sites: FRA, ASH"}]}},"InvalidClusterName":{"value":{"errors":[{"code":"INVALID_CLUSTER_NAME","message":"Cluster name must contain only lowercase letters, numbers, and hyphens"}]}},"InsufficientStock":{"value":{"errors":[{"code":"INSUFFICIENT_STOCK","message":"No stock available of plan suitable for Kubernetes cluster"}]}},"PlanNotFound":{"value":{"errors":[{"code":"PLAN_NOT_FOUND","message":"Plan 'invalid-plan' not found"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"503":{"description":"Service Unavailable","content":{"application/vnd.api+json":{"examples":{"ManagementClusterError":{"value":{"errors":[{"code":"MANAGEMENT_CLUSTER_ERROR","message":"Failed to communicate with the management cluster"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}},"requestBody":{"content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/create_kubernetes_cluster"},"examples":{"Created":{"summary":"Create a cluster","value":{"data":{"type":"kubernetes_clusters","attributes":{"name":"my-cluster","project_id":"proj_6059EqYkOQj8p","site":"SAN3","plan":"c2-small-x86","ssh_keys":["ssh_VkE1DwV37dnZJ"]}}}}}}},"required":true}},"get":{"summary":"List Kubernetes Clusters","operationId":"list-kubernetes-clusters","tags":["Kubernetes Clusters"],"security":[{"Bearer":[]}],"parameters":[{"name":"project_id","in":"query","required":true,"description":"The project ID to filter clusters by","schema":{"type":"string"}}],"description":"Lists all Kubernetes clusters for a project.\n","responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"type":"kubernetes_clusters","id":"kc_pRMLydp0dQKr1","attributes":{"name":"my-cluster","phase":"Provisioned","ready":true,"infrastructure_ready":true,"control_plane_ready":true,"message":"Cluster is ready","steps":[{"name":"infrastructure","status":"completed"},{"name":"control_plane","status":"completed"},{"name":"workers","status":"completed"}],"last_status_change":"2026-01-15T10:35:00Z","created_at":"2026-01-15T10:30:00Z"}}]}},"EmptyList":{"value":{"data":[]}}},"schema":{"$ref":"#/components/schemas/kubernetes_clusters"}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"examples":{"MissingProjectId":{"value":{"errors":[{"code":"VALIDATION_ERROR","message":"project_id query param is required"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"examples":{"InvalidToken":{"value":{"errors":[{"code":"UNAUTHORIZED","message":"Invalid token"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}}},"/kubernetes_clusters/available_versions":{"get":{"summary":"List Available Kubernetes Versions","operationId":"list-kubernetes-available-versions","tags":["Kubernetes Clusters"],"security":[{"Bearer":[]}],"parameters":[],"description":"Returns the list of available Kubernetes versions for cluster creation and upgrades. Versions are sourced from the RKE2 release channels and cached for 24 hours.\n\nEach version object includes:\n- `latest`: The full version string (e.g., `v1.35.3+rke2r1`)\n- `minor`: The minor version number (e.g., `1.35`)\n\nThe API returns the latest 5 supported minor versions. When upgrading clusters, you can only upgrade one minor version at a time (e.g., from 1.34 to 1.35).\n","responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"latest":"v1.31.6+rke2r1","minor":"1.31"},{"latest":"v1.32.5+rke2r1","minor":"1.32"},{"latest":"v1.33.5+rke2r1","minor":"1.33"},{"latest":"v1.34.6+rke2r1","minor":"1.34"},{"latest":"v1.35.3+rke2r1","minor":"1.35"}]}}},"schema":{"$ref":"#/components/schemas/kubernetes_available_versions"}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"examples":{"InvalidToken":{"value":{"errors":[{"code":"UNAUTHORIZED","message":"Invalid token"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}}},"/kubernetes_clusters/{kubernetes_cluster_id}":{"get":{"summary":"Get a Kubernetes Cluster","operationId":"get-kubernetes-cluster","tags":["Kubernetes Clusters"],"security":[{"Bearer":[]}],"parameters":[{"name":"kubernetes_cluster_id","in":"path","required":true,"description":"The cluster ID (format: kc_<hash>) or cluster name. Both formats are accepted for backward compatibility.","schema":{"type":"string"}}],"description":"Retrieves detailed information about a Kubernetes cluster including its status, control plane, worker node details, and individual node information.\n","responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"type":"kubernetes_clusters","id":"kc_pRMLydp0dQKr1","attributes":{"name":"my-cluster","phase":"Provisioned","ready":true,"control_plane_endpoint":"https://api.my-cluster.example.com:6443","kubeconfig_url":"/kubernetes_clusters/kc_pRMLydp0dQKr1/kubeconfig","location":"SAN3","load_balancer_ips":["10.0.0.1"],"kubernetes_version":"v1.34.3+rke2r1","version_status":"upgrade_available","available_upgrade":"v1.35.3+rke2r1","created_at":"2026-01-15T10:30:00Z","plan":"c3-small-x86","worker_plan":"c3-medium-x86","control_plane_count":1,"worker_count":1,"control_plane":{"ready":true,"replicas":1,"ready_replicas":1},"workers":{"replicas":1,"ready_replicas":1,"available_replicas":1},"worker_status":"ready","control_plane_status":"ready","infrastructure_ready":true,"control_plane_ready":true,"message":"Cluster is ready","steps":[{"name":"infrastructure","status":"completed"},{"name":"control_plane","status":"completed"},{"name":"workers","status":"completed"}],"last_status_change":"2026-01-15T10:35:00Z","failure_message":null,"failure_reason":null,"nodes":[{"id":"my-cluster-control-plane-abc12","name":"my-cluster-control-plane-abc12","hostname":"my-cluster-control-plane-abc12","server_id":"sv_RLYV8DZ2D5QoE","type":"control_plane","status":"ready","ip":"203.0.113.10","internal_ip":"10.0.0.10","external_ip":"203.0.113.10"},{"id":"my-cluster-md-0-def34","name":"my-cluster-md-0-def34","hostname":"my-cluster-md-0-def34","server_id":"sv_7KP2Xm9nYwR3Q","type":"worker","status":"ready","ip":"203.0.113.20","internal_ip":"10.0.0.20","external_ip":"203.0.113.20"}],"project":{"id":"proj_6059EqYkOQj8p","name":"My Project","slug":"my-project"}}}}},"Provisioning":{"value":{"data":{"type":"kubernetes_clusters","id":"kc_pRMLydp0dQKr1","attributes":{"name":"my-cluster","phase":"Provisioning","ready":false,"control_plane_endpoint":null,"kubeconfig_url":null,"location":"SAN3","load_balancer_ips":[],"kubernetes_version":"v1.34.3+rke2r1","version_status":"up_to_date","available_upgrade":null,"created_at":"2026-01-15T10:30:00Z","plan":"c3-small-x86","worker_plan":"c3-medium-x86","control_plane_count":1,"worker_count":0,"control_plane":{"ready":false,"replicas":1,"ready_replicas":0},"workers":null,"worker_status":null,"control_plane_status":"scaling","infrastructure_ready":false,"control_plane_ready":false,"message":"Setting up cluster infrastructure","steps":[{"name":"infrastructure","status":"in_progress"},{"name":"control_plane","status":"pending"},{"name":"workers","status":"pending"}],"last_status_change":"2026-01-15T10:32:00Z","failure_message":null,"failure_reason":null,"nodes":[{"id":"my-cluster-control-plane-xyz78","name":"my-cluster-control-plane-xyz78","hostname":null,"server_id":null,"type":"control_plane","status":"pending","ip":null,"internal_ip":null,"external_ip":null}],"project":{"id":"proj_6059EqYkOQj8p","name":"My Project","slug":"my-project"}}}}}},"schema":{"$ref":"#/components/schemas/kubernetes_cluster"}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"examples":{"InvalidToken":{"value":{"errors":[{"code":"UNAUTHORIZED","message":"Invalid token"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ClusterNotFound":{"value":{"errors":[{"code":"NOT_FOUND","message":"Cluster my-cluster not found"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}},"delete":{"summary":"Delete a Kubernetes Cluster","operationId":"delete-kubernetes-cluster","tags":["Kubernetes Clusters"],"security":[{"Bearer":[]}],"parameters":[{"name":"kubernetes_cluster_id","in":"path","required":true,"description":"The cluster ID (format: kc_<hash>) or cluster name. Both formats are accepted for backward compatibility.","schema":{"type":"string"}}],"description":"Deletes a Kubernetes cluster. This action is irreversible and will destroy all cluster resources.\n\n**Note:** Only users with the `owner`, `administrator`, or `collaborator` role can delete clusters. Users with the `billing` role cannot perform this action.\n","responses":{"204":{"description":"No Content"},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"examples":{"InvalidToken":{"value":{"errors":[{"code":"UNAUTHORIZED","message":"Invalid token"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Managed Kubernetes is not enabled for this team"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"FORBIDDEN","message":"You are not authorized to perform this action"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ClusterNotFound":{"value":{"errors":[{"code":"NOT_FOUND","message":"Cluster my-cluster not found"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"DeletionFailed":{"value":{"errors":[{"code":"DELETION_FAILED","message":"Failed to delete the cluster"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}},"patch":{"summary":"Update Kubernetes Cluster","operationId":"update-kubernetes-cluster","tags":["Kubernetes Clusters"],"security":[{"Bearer":[]}],"parameters":[{"name":"kubernetes_cluster_id","in":"path","required":true,"description":"The cluster ID (format: kc_<hash>) or cluster name. Both formats are accepted for backward compatibility.","schema":{"type":"string"}}],"description":"Updates a Kubernetes cluster by scaling nodes or upgrading the Kubernetes version. The cluster must be in `Provisioned` phase to accept updates.\n\n## Scaling Operations\n\nExactly one of `worker_count` or `control_plane_count` must be provided per request. You cannot scale workers and control plane nodes in the same request.\n\nWhen scaling up, the API validates that sufficient server stock is available for the requested delta (e.g., scaling from 2 to 5 workers checks for 3 available servers).\n\nWhen scaling from 0 workers, you must provide a `worker_plan` since there is no existing configuration to inherit the plan from.\n\nControl plane scaling has a minimum of 1 node. You cannot scale control plane nodes to zero.\n\n## Version Upgrades\n\nProvide a `kubernetes_version` parameter to upgrade the cluster to a new Kubernetes version. Version upgrades follow these rules:\n\n- **No downgrades**: You cannot downgrade to a lower version than currently installed\n- **One minor version at a time**: You can only upgrade one minor version at a time (e.g., from 1.34 to 1.35, not from 1.34 to 1.36)\n- **Mutually exclusive**: Version upgrades cannot be combined with scaling operations in the same request\n- **Available versions only**: The target version must be in the list returned by `GET /kubernetes_clusters/available_versions`\n\nReturns 202 Accepted when an update operation is triggered. Poll the GET endpoint to monitor progress. Returns 200 OK if no change is needed (no-op).\n","responses":{"200":{"description":"OK - No change needed","content":{"application/vnd.api+json":{"examples":{"WorkersUnchanged":{"summary":"Worker count unchanged","value":{"data":{"type":"kubernetes_clusters","id":"kc_pRMLydp0dQKr1","attributes":{"name":"my-cluster","status":"unchanged","worker_count":3}}}},"ControlPlaneUnchanged":{"summary":"Control plane count unchanged","value":{"data":{"type":"kubernetes_clusters","id":"kc_pRMLydp0dQKr1","attributes":{"name":"my-cluster","status":"unchanged","control_plane_count":3}}}}},"schema":{"$ref":"#/components/schemas/kubernetes_cluster_update_response"}}}},"202":{"description":"Accepted - Update operation started","content":{"application/vnd.api+json":{"examples":{"ScalingWorkers":{"summary":"Worker scaling in progress","value":{"data":{"type":"kubernetes_clusters","id":"kc_pRMLydp0dQKr1","attributes":{"name":"my-cluster","status":"scaling","worker_count":5}}}},"ScalingControlPlane":{"summary":"Control plane scaling in progress","value":{"data":{"type":"kubernetes_clusters","id":"kc_pRMLydp0dQKr1","attributes":{"name":"my-cluster","status":"scaling","control_plane_count":3}}}},"UpgradingVersion":{"summary":"Version upgrade in progress","value":{"data":{"type":"kubernetes_clusters","id":"kc_pRMLydp0dQKr1","attributes":{"name":"my-cluster","status":"upgrading","kubernetes_version":"v1.35.0+rke2r1"}}}}},"schema":{"$ref":"#/components/schemas/kubernetes_cluster_update_response"}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"examples":{"MissingParameter":{"summary":"No update parameter provided","value":{"errors":[{"code":"VALIDATION_ERROR","message":"worker_count, control_plane_count, or kubernetes_version is required"}]}},"ScalingMutualExclusion":{"summary":"Both worker_count and control_plane_count provided","value":{"errors":[{"code":"VALIDATION_ERROR","message":"cannot update control_plane_count and worker_count in the same request"}]}},"VersionWithScaling":{"summary":"Version upgrade combined with scaling","value":{"errors":[{"code":"VALIDATION_ERROR","message":"cannot combine kubernetes_version with scaling operations"}]}},"InvalidWorkerCountType":{"value":{"errors":[{"code":"VALIDATION_ERROR","message":"worker_count must be an integer"}]}},"InvalidControlPlaneCountType":{"summary":"Control plane count is not an integer","value":{"errors":[{"code":"VALIDATION_ERROR","message":"control_plane_count must be an integer"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"InsufficientPermissions":{"value":{"errors":[{"code":"FORBIDDEN","message":"You don't have permission to perform this action"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ClusterNotFound":{"value":{"errors":[{"code":"NOT_FOUND","message":"Cluster my-cluster not found"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ClusterNotReady":{"value":{"errors":[{"code":"VALIDATION_ERROR","message":"Cluster must be in Provisioned phase to accept updates (current phase: Provisioning)"}]}},"InvalidWorkerCount":{"value":{"errors":[{"code":"INVALID_WORKER_COUNT","message":"worker_count must be between 0 and 10"}]}},"WorkerPlanRequired":{"value":{"errors":[{"code":"WORKER_PLAN_REQUIRED","message":"worker_plan is required when scaling from 0 workers"}]}},"InvalidControlPlaneCount":{"summary":"Control plane count below minimum","value":{"errors":[{"code":"VALIDATION_ERROR","message":"control_plane_count must be at least 1"}]}},"InsufficientStock":{"value":{"errors":[{"code":"INSUFFICIENT_STOCK","message":"No stock available of plan suitable for Kubernetes cluster"}]}},"VersionDowngrade":{"summary":"Attempted to downgrade Kubernetes version","value":{"errors":[{"code":"VERSION_DOWNGRADE","message":"Cannot downgrade from v1.35.0+rke2r1 to v1.34.0+rke2r1"}]}},"MinorVersionSkip":{"summary":"Attempted to skip a minor version","value":{"errors":[{"code":"MINOR_VERSION_SKIP","message":"Cannot skip minor versions. Current: 1.34, target: 1.36. Upgrade to 1.35 first."}]}},"VersionNotAvailable":{"summary":"Target version not in available versions list","value":{"errors":[{"code":"VERSION_NOT_AVAILABLE","message":"Version v1.30.0+rke2r1 is not available for upgrade"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"503":{"description":"Service Unavailable","content":{"application/vnd.api+json":{"examples":{"ManagementClusterError":{"value":{"errors":[{"code":"MANAGEMENT_CLUSTER_ERROR","message":"Failed to communicate with the management cluster"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}},"requestBody":{"content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/update_kubernetes_cluster"},"examples":{"ScaleWorkersUp":{"summary":"Scale workers from 2 to 5","value":{"data":{"type":"kubernetes_clusters","attributes":{"worker_count":5}}}},"ScaleWorkersDown":{"summary":"Scale workers from 5 to 2","value":{"data":{"type":"kubernetes_clusters","attributes":{"worker_count":2}}}},"ScaleWorkersFromZero":{"summary":"Scale from 0 workers (requires worker_plan)","value":{"data":{"type":"kubernetes_clusters","attributes":{"worker_count":3,"worker_plan":"c3-small-x86"}}}},"ScaleWorkersToZero":{"summary":"Scale down to 0 workers","value":{"data":{"type":"kubernetes_clusters","attributes":{"worker_count":0}}}},"ScaleControlPlaneUp":{"summary":"Scale control plane from 1 to 3 nodes","value":{"data":{"type":"kubernetes_clusters","attributes":{"control_plane_count":3}}}},"ScaleControlPlaneDown":{"summary":"Scale control plane from 3 to 1 node","value":{"data":{"type":"kubernetes_clusters","attributes":{"control_plane_count":1}}}},"UpgradeVersion":{"summary":"Upgrade Kubernetes version","value":{"data":{"type":"kubernetes_clusters","attributes":{"kubernetes_version":"v1.35.0+rke2r1"}}}}}}},"required":true}}},"/kubernetes_clusters/{kubernetes_cluster_id}/kubeconfig":{"get":{"summary":"Get Kubernetes Cluster Kubeconfig","operationId":"get-kubernetes-cluster-kubeconfig","tags":["Kubernetes Clusters"],"security":[{"Bearer":[]}],"parameters":[{"name":"kubernetes_cluster_id","in":"path","required":true,"description":"The cluster ID (format: kc_<hash>) or cluster name. Both formats are accepted for backward compatibility.","schema":{"type":"string"}}],"description":"Retrieves the kubeconfig file for a Kubernetes cluster. The kubeconfig is only available once the cluster is fully provisioned.\n\n**Note:** Only users with the `owner`, `administrator`, or `collaborator` role can access cluster credentials. Users with the `billing` role cannot perform this action.\n","responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"type":"kubernetes_cluster_kubeconfigs","id":"kc_pRMLydp0dQKr1","attributes":{"cluster_name":"my-cluster","kubeconfig":"apiVersion: v1\nclusters:\n- cluster:\n    certificate-authority-data: LS0tLS1...\n    server: https://api.my-cluster.example.com:6443\n  name: my-cluster\ncontexts:\n- context:\n    cluster: my-cluster\n    user: my-cluster-admin\n  name: my-cluster\ncurrent-context: my-cluster\nkind: Config\nusers:\n- name: my-cluster-admin\n  user:\n    client-certificate-data: LS0tLS1...\n    client-key-data: LS0tLS1...\n"}}}}},"schema":{"$ref":"#/components/schemas/kubernetes_cluster_kubeconfig"}}}},"401":{"description":"Unauthorized","content":{"application/vnd.api+json":{"examples":{"InvalidToken":{"value":{"errors":[{"code":"UNAUTHORIZED","message":"Invalid token"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Managed Kubernetes is not enabled for this team"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"FORBIDDEN","message":"You are not authorized to perform this action"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"KubeconfigNotFound":{"value":{"errors":[{"code":"NOT_FOUND","message":"Kubeconfig not found for cluster my-cluster"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}}},"/plans":{"get":{"summary":"List plans","operationId":"get-plans","tags":["Plans"],"security":[{"Bearer":[]}],"parameters":[{"name":"filter[name]","in":"query","required":false,"description":"The plan name to filter by","schema":{"type":"string"}},{"name":"filter[slug]","in":"query","required":false,"description":"The plan slug to filter by","schema":{"type":"string"}},{"name":"filter[location]","in":"query","required":false,"description":"The location of the site to filter by","schema":{"type":"string"}},{"name":"filter[stock_level]","in":"query","schema":{"type":"string","enum":["unavailable","low","medium","high","unique"]},"required":false,"description":"The stock level at the site to filter by"},{"name":"filter[in_stock]","in":"query","required":false,"description":"The stock available at the site to filter by","schema":{"type":"boolean"}},{"name":"filter[gpu]","in":"query","required":false,"description":"Filter by the existence of an associated GPU","schema":{"type":"boolean"}},{"name":"filter[ram]","in":"query","required":false,"description":"The ram size in Gigabytes to filter by, should be used with the following options:\n                              [eql] to filter for values equal to the provided value.\n                              [gte] to filter for values greater or equal to the provided value.\n                              [lte] to filter by values lower or equal to the provided value.","schema":{"type":"integer"}},{"name":"filter[disk]","in":"query","required":false,"description":"The disk size in Gigabytes to filter by, should be used with the following options:\n                              [eql] to filter for values equal to the provided value.\n                              [gte] to filter for values greater or equal to the provided value.\n                              [lte] to filter by values lower or equal to the provided value.","schema":{"type":"integer"}}],"description":"Lists all plans. Availability by region is included in `attributes.regions.locations.available[*]` node for a given plan.\n","x-mint":{"href":"/api-reference/get-plans"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"plan_g1mbDw8BOLv5B","type":"plans","attributes":{"slug":"m4-metal-small-42","name":"m4.metal.small-42","features":[],"specs":{"cpu":{"type":"E-2276G","clock":3.8,"cores":6,"count":1},"memory":{"total":32},"drives":[{"count":1,"size":"3.8TB","type":"SSD"}],"nics":[{"count":1,"type":"10 Gbps"}],"gpu":{"count":4,"type":"NVIDIA H100","vram_per_gpu":null,"interconnect":null}},"regions":[{"name":"Brazil","deploys_instantly":[],"locations":{"available":["SAO"],"in_stock":["SAO"]},"stock_level":"medium","pricing":{"USD":{"hour":10.0,"month":50.0,"year":100.0},"BRL":{"hour":53.0,"month":108.5,"year":205.0}}}]}}],"meta":{}}}},"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/plan_data"}}}}}}}}}},"/plans/{plan_id}":{"get":{"summary":"Retrieve plan","operationId":"get-plan","tags":["Plans"],"security":[{"Bearer":[]}],"parameters":[{"name":"plan_id","in":"path","required":true,"examples":{"Success":{"value":"plan_RMLydp20DQKr1"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-plan"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"plan_RMLydp20DQKr1","type":"plans","attributes":{"slug":"g3-h100-medium-43","name":"g3.h100.medium-43","features":[],"specs":{"cpu":{"type":"E-2276G","clock":3.8,"cores":6,"count":1},"memory":{"total":32},"drives":[{"count":1,"size":"3.8TB","type":"SSD"}],"nics":[{"count":1,"type":"10 Gbps"}],"gpu":{"count":4,"type":"NVIDIA H100","vram_per_gpu":null,"interconnect":null}},"regions":[{"name":"Brazil","deploys_instantly":[],"locations":{"available":["SAO"],"in_stock":["SAO"]},"stock_level":"medium","pricing":{"USD":{"hour":10.0,"month":50.0,"year":100.0},"BRL":{"hour":53.0,"month":108.5,"year":205.0}}}]}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/plan"}}}}}}},"/plans/bandwidth":{"get":{"summary":"List bandwidth plans","operationId":"get-bandwidth-plans","tags":["Plans"],"security":[{"Bearer":[]}],"parameters":[{"name":"API-Version","in":"header","schema":{"type":"string","default":"2023-06-01"},"examples":{"Success":{"value":"2023-06-01"}}},{"name":"filter[id]","in":"query","required":false,"description":"The plan ID to filter by","schema":{"type":"string"}},{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"},{"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"},{"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}],"description":"Lists all bandwidth plans.","x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"},{"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}},"x-mint":{"href":"/api-reference/get-bandwidth-plans"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"chile-54","type":"bandwidth_plan","attributes":{"region":"Chile 54","locations":["ASH","SAO"],"pricing":{"usd":{"monthly":5000,"yearly":6000},"brl":{"monthly":8000,"yearly":null}}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/bandwidth_plans"}}}}}},"post":{"summary":"Update bandwidth packages","operationId":"update-plans-bandwidth","tags":["Plans"],"security":[{"Bearer":[]}],"parameters":[],"description":"Allows to increase or decrease bandwidth packages. Only admins and owners can request.\n","x-mint":{"href":"/api-reference/update-plans-bandwidth"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"type":"bandwidth_packages","attributes":{"project":{"id":"proj_z2A3DVZ3DnawP","name":"Orn-Reilly","slug":"orn-reilly"},"packages":[{"region_slug":"united-states","unit_price":0.5,"currency":"USD","contracted":10,"total_price":5.0},{"region_slug":"brazil","unit_price":4.6,"currency":"USD","contracted":0,"total_price":0.0}]}}}}},"schema":{"$ref":"#/components/schemas/bandwidth_packages"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["bandwidth_packages"]},"attributes":{"type":"object","properties":{"project":{"type":"string","description":"The project (ID or Slug) to add bandwidth"},"quantity":{"type":"integer","description":"The total amount you want to have"},"region_slug":{"type":"string","description":"The region to add bandwidth"}}}}}}},"examples":{"Success":{"summary":"Success","value":{"data":{"type":"bandwidth_packages","attributes":{"project":"proj_z2A3DVZ3DnawP","region_slug":"brazil","quantity":5}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["bandwidth_packages"]},"attributes":{"type":"object","properties":{"project":{"type":"string","description":"The project (ID or Slug) to add bandwidth"},"quantity":{"type":"integer","description":"The total amount you want to have"},"region_slug":{"type":"string","description":"The region to add bandwidth"}}}}}}},"examples":{"Success":{"summary":"Success","value":{"data":{"type":"bandwidth_packages","attributes":{"project":"proj_z2A3DVZ3DnawP","region_slug":"brazil","quantity":5}}}}}}},"required":true}}},"/plans/storage":{"get":{"summary":"List storage plans","operationId":"get-storage-plans","tags":["Plans"],"security":[{"Bearer":[]}],"parameters":[{"name":"filter[storage_type]","in":"query","required":false,"description":"Filter by storage type (filesystem or object)","schema":{"type":"string"}},{"name":"filter[storage_class]","in":"query","required":false,"description":"Filter by storage class (standard or high_performance)","schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-storage-plans"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"plan_059EqY7kOQj8p","type":"storage_plans","attributes":{"name":"Filesystem","storage_type":"filesystem","storage_class":null,"regions":[{"name":"United States","locations":["DAL"],"pricing":{"USD":{"month":0.12},"BRL":{"month":0.68}}}]}}]}}},"schema":{"$ref":"#/components/schemas/storage_plans"}}}}}}},"/plans/virtual_machines":{"get":{"summary":"List VM plans","operationId":"get-vm-plans","tags":["Plans"],"security":[{"Bearer":[]}],"parameters":[{"name":"filter[gpu]","in":"query","required":false,"description":"Filter plans by GPU availability","schema":{"type":"boolean"}}],"x-mint":{"href":"/api-reference/get-vm-plans"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"plan_aNmodj4eDbE8W","type":"virtual_machine_plans","attributes":{"name":"vm.l40s.tiny","specs":{"memory":16,"gpu":"NVIDIA H100 Tensor Core GPU","vram_per_gpu":80,"vcpus":14,"vcpu":{"count":14,"clock":3.8,"type":"Intel Xeon"},"nics":[{"type":"1 Gbps","count":1}],"disk":{"type":"local NVMe","size":{"amount":150,"unit":"gib"}}},"regions":[{"name":"United States","locations":{"available":["DAL"],"in_stock":["DAL"]},"stock_level":"low","pricing":{"USD":{"hour":1.0,"month":720.0,"year":8640.0},"BRL":{"hour":1.0,"month":720.0,"year":8640.0}}}],"stock_level":"low","available_operating_systems":["ubuntu_24_04_x64_lts","debian_13","rocky_10","almalinux_10"]}}]}}},"schema":{"$ref":"#/components/schemas/virtual_machine_plans"}}}}}}},"/plans/managed_databases":{"get":{"summary":"List managed database plans","operationId":"get-managed-database-plans","tags":["Plans"],"security":[{"Bearer":[]}],"x-mint":{"href":"/api-reference/get-managed-database-plans"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"plan_a1b2c3d4","type":"managed_database_plans","attributes":{"name":"db.clickhouse.dev","slug":"db-clickhouse-dev","engine":"clickhouse","specs":{"cpu":"1","memory":"2Gi","storage":"5Gi","shards":1,"replicas":1,"iops":null},"regions":[{"region":"ASH","city":"Ashburn","country":"United States","site":{"id":"loc_ashburn","name":"Ashburn","slug":"ASH","facility":"DC1"},"pricing":{"USD":{"month":10.0,"year":100.0},"BRL":{"month":57.0,"year":570.0}}}]}}]}}},"schema":{"$ref":"#/components/schemas/managed_database_plans"}}}}}}},"/public_networks":{"get":{"summary":"List networks","operationId":"get-public-networks","tags":["Public Networks"],"security":[{"Bearer":[]}],"parameters":[{"name":"filter[project]","in":"query","required":false,"schema":{"type":"string"}},{"name":"filter[site]","in":"query","required":false,"schema":{"type":"string"}}],"description":"List the customer networks owned by the team","x-mint":{"href":"/api-reference/get-public-networks"},"responses":{"200":{"description":"OK","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/public_networks"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}}}},"post":{"summary":"Create a network","operationId":"create-public-network","tags":["Public Networks"],"security":[{"Bearer":[]}],"parameters":[],"description":"Provision a customer network: an IPv4 block of the chosen size plus a paired IPv6 /64. The network is allocated synchronously and returned in the response; billing is settled in the background.","x-mint":{"href":"/api-reference/create-public-network"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/public_network"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}},"409":{"description":"Conflict","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/create_public_network"}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/create_public_network"}}},"required":true}}},"/public_networks/{id}":{"get":{"summary":"Retrieve a network","operationId":"get-public-network","tags":["Public Networks"],"security":[{"Bearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Retrieve a customer network","x-mint":{"href":"/api-reference/get-public-network"},"responses":{"200":{"description":"OK","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/public_network"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}}}},"delete":{"summary":"Delete a network","operationId":"destroy-public-network","tags":["Public Networks"],"security":[{"Bearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Delete a customer network. Only allowed while the network has no IPs in use.","x-mint":{"href":"/api-reference/destroy-public-network"},"responses":{"204":{"description":"No Content"},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}}}}},"/projects":{"get":{"summary":"List projects","operationId":"get-projects","tags":["Projects"],"security":[{"Bearer":[]}],"parameters":[{"name":"filter[name]","in":"query","required":false,"description":"The project name to filter by","schema":{"type":"string"}},{"name":"filter[slug]","in":"query","required":false,"description":"The project slug to filter by","schema":{"type":"string"}},{"name":"filter[description]","in":"query","required":false,"description":"The project description to filter by","schema":{"type":"string"}},{"name":"filter[billing_type]","in":"query","required":false,"description":"The billing type to filter by","schema":{"type":"string"}},{"name":"filter[environment]","in":"query","required":false,"description":"The environment to filter by","schema":{"type":"string"}},{"name":"filter[tags]","in":"query","required":false,"description":"The tags ids to filter by, separated by comma, e.g. `filter[tags]=tag_1,tag_2`will return projects with `tag_1` AND `tag_2`","schema":{"type":"string"},"examples":{"Success":{"value":"tag_GXeww714mRF2gZ05lnKgU8emo5RE,tag_QQkaK9JnV6tWwPG3pmLviXveVK0Y"}}},{"name":"extra_fields[projects]","in":"query","required":false,"description":"The `last_renewal_date` and `next_renewal_date` are provided as extra attributes that show previous and future billing cycle dates. To request it, just set `extra_fields[projects]=last_renewal_date,next_renewal_date` in the query string.","schema":{"type":"string"}},{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"},{"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"},{"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}],"description":"Returns a list of all projects for the current team\n","x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"},{"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}},"x-mint":{"href":"/api-reference/get-projects"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"proj_WeGoqAanqP7nz","type":"projects","attributes":{"tags":[{"id":"tag_GXeww714mRF2gZ05lnKgU8emo5RE","name":"tag1","description":"Sunt dolorem inventore maxime.","color":"#2d6767"},{"id":"tag_QQkaK9JnV6tWwPG3pmLviXveVK0Y","name":"tag2","description":"Et occaecati quod ex.","color":"#182f18"}],"name":"Durable Iron Gloves","slug":"durable-iron-gloves","description":"Heavy Duty Steel Computer","billing_type":"Hourly","cost":null,"billing_method":"Normal","bandwidth_alert":false,"environment":null,"provisioning_type":"on_demand","billing":{},"team":{"id":"team_w03a5zVl9XsXVybw2gz7SNr1el2","name":"176 Team","slug":"176-team","description":"176 Team","address":"3253 VonRueden Creek, Jcbury, NV 21576","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null},"status":"verified","feature_flags":[],"limits":{"bare_metal":null,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0},"created_at":"2026-01-14T15:56:39+00:00","updated_at":"2026-01-14T15:56:39+00:00"}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/projects"}}}}}},"post":{"summary":"Create project","operationId":"create-project","tags":["Projects"],"security":[{"Bearer":[]}],"parameters":[],"x-mint":{"href":"/api-reference/create-project"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"proj_0L6WO156OPlXy","type":"projects","attributes":{"tags":[],"name":"Bailey and Sons","slug":"bailey-and-sons","description":"Thick slices of French toast bread, brown sugar, half-and-half and vanilla, topped with powdered sugar. With two eggs served any style, and your choice of smoked bacon or smoked ham.","bandwidth_alert":null,"environment":"Development","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","billing":{"subscription_id":"sub_wj7zk7mu35c2yq","type":"Normal","method":"Normal"},"team":{"id":"team_72lL07N6leClEozwoxe9UVap9Aw","name":"179 Team","slug":"179-team","description":"179 Team","address":"Suite 460 74321 Nana Locks, Crystalport, TN 35908","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null},"status":"verified","feature_flags":[],"limits":{"bare_metal":5,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0},"created_at":"2026-01-14T15:56:39+00:00","updated_at":"2026-01-14T15:56:39+00:00"}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/project"}}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["projects"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"The project name. Must be unique."},"provisioning_type":{"type":"string","description":"The provisioning type of the project. Default: on_demand","enum":["reserved","on_demand"]},"description":{"type":"string","description":"The project description."},"environment":{"type":"string","enum":["Development","Staging","Production"]}},"required":["name","provisioning_type"]}},"required":["type"]}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"projects","attributes":{"name":"Bailey and Sons","description":"Thick slices of French toast bread, brown sugar, half-and-half and vanilla, topped with powdered sugar. With two eggs served any style, and your choice of smoked bacon or smoked ham.","environment":"Development","provisioning_type":"on_demand"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["projects"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"The project name. Must be unique."},"provisioning_type":{"type":"string","description":"The provisioning type of the project. Default: on_demand","enum":["reserved","on_demand"]},"description":{"type":"string","description":"The project description."},"environment":{"type":"string","enum":["Development","Staging","Production"]}},"required":["name","provisioning_type"]}},"required":["type"]}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"projects","attributes":{"name":"Bailey and Sons","description":"Thick slices of French toast bread, brown sugar, half-and-half and vanilla, topped with powdered sugar. With two eggs served any style, and your choice of smoked bacon or smoked ham.","environment":"Development","provisioning_type":"on_demand"}}}}}}},"required":true}}},"/projects/{project_id}":{"patch":{"summary":"Update project","operationId":"update-project","tags":["Projects"],"security":[{"Bearer":[]}],"parameters":[{"name":"project_id","in":"path","description":"The project ID or Slug","required":true,"examples":{"Success":{"value":"proj_Gr47qleMDAg0m"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/update-project"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"proj_Gr47qleMDAg0m","type":"projects","attributes":{"tags":[{"id":"tag_VgrmvzlEGJhbGYv0z8YzHLa9PKV","name":"Ted Sandyman","description":"Corporis nostrum praesentium deleniti.","color":"#020302"},{"id":"tag_PEAMyKnQZEHpGAWKMpB6F7EVYyYj","name":"Erchirion","description":"Corporis quos sequi mollitia.","color":"#0d4e4e"}],"name":"Moore-Durgan","slug":"moore-durgan","description":"Sequi occaecati eaque exercitationem.","bandwidth_alert":true,"environment":"Production","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","billing":{"subscription_id":"sub_5sst6soyu2lzm0","type":"Normal","method":"Normal"},"team":{"id":"team_mygwarnav0hG97b9393biKZxall","name":"198 Team","slug":"198-team","description":"198 Team","address":"Apt. 401 9373 Gregg Islands, Cassinmouth, NC 33577-6685","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null},"status":"verified","feature_flags":[],"limits":{"bare_metal":5,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0},"created_at":"2026-01-14T15:56:40+00:00","updated_at":"2026-01-14T15:56:40+00:00"}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/project"}}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["projects"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"environment":{"type":"string","enum":["Development","Staging","Production"]},"bandwidth_alert":{"type":"boolean"},"tags":{"type":"array","items":{"type":"string"}}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"proj_Gr47qleMDAg0m","type":"projects","attributes":{"tags":["tag_VgrmvzlEGJhbGYv0z8YzHLa9PKV","tag_PEAMyKnQZEHpGAWKMpB6F7EVYyYj"]}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["projects"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"environment":{"type":"string","enum":["Development","Staging","Production"]},"bandwidth_alert":{"type":"boolean"},"tags":{"type":"array","items":{"type":"string"}}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"proj_Gr47qleMDAg0m","type":"projects","attributes":{"tags":["tag_VgrmvzlEGJhbGYv0z8YzHLa9PKV","tag_PEAMyKnQZEHpGAWKMpB6F7EVYyYj"]}}}}}}}}},"delete":{"summary":"Delete project","description":"Deletes a project and releases associated resources. Any Elastic IPs assigned to the project are automatically released and returned to the available pool.","operationId":"delete-project","tags":["Projects"],"security":[{"Bearer":[]}],"parameters":[{"name":"project_id","in":"path","description":"The project ID or Slug","required":true,"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/delete-project"},"responses":{"204":{"description":"No Content"}}},"get":{"summary":"Retrieve project","operationId":"get-project","tags":["Projects"],"security":[{"Bearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"description":"The project ID or Slug","schema":{"type":"string"}}],"description":"Returns a single project belonging to the current team\n","x-mint":{"href":"/api-reference/get-project"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/project"},"meta":{"type":"object"}}}}}}}}},"/projects/{project_id}/ssh_keys":{"get":{"summary":"List SSH Keys","operationId":"get-project-ssh-keys","tags":["SSH Keys"],"deprecated":true,"security":[{"Bearer":[]}],"parameters":[{"name":"project_id","in":"path","description":"Project ID or Slug","required":true,"examples":{"Success":{"value":"proj_5AEmq7wMqBkWX"}},"schema":{"type":"string"}},{"name":"filter[tags]","in":"query","required":false,"description":"The tags ids to filter by, separated by comma, e.g. `filter[tags]=tag_1,tag_2`will return ssh keys with `tag_1` AND `tag_2`","examples":{"Success":{"value":"tag_5wKQ2Y9eoAi5plr4zlQ6tjl6rEw,tag_8GKKZ6B9MbtYl4K09gj4fXy9Nneg"}},"schema":{"type":"string"}},{"name":"stats[total]","in":"query","required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`.","schema":{"type":"string"}},{"name":"page[number]","in":"query","required":false,"description":"Page number for pagination","schema":{"type":"integer"}},{"name":"page[size]","in":"query","required":false,"description":"Number of items per page","schema":{"type":"integer"}}],"description":"List all SSH Keys in the project. These keys can be used to access servers after deploy and reinstall actions.\n","x-mint":{"href":"/api-reference/get-project-ssh-keys"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"ssh_mw49QDB5qagKb","type":"ssh_keys","attributes":{"tags":[],"name":"hirthe-ankunding.example","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmmIH/Esj4Cpz6utdAJN+syqnQ9xBHMGXKEKTecy2Qn2F7riuCDe7ICRDmpVnUhWJtvWGwrnGZgJkt3/q72lRGeMfBXF68cdvrzHMl+vDpQbmd6WAyCl4ufhGJyVrsw9N5eTMm9DOALWnd6SBldR6aubGUhhITI/ODh3N/l/0YPP2Nqif0lVrBCyxFBs894uNgbG2SR1hS6g7ZA8IfrUtQE3OPXMaVyIpfbdDVSVerOB9xZu2A8J+Dx/8hV7RPeed+R8D8wt9zLul03kaC/mrwXYrQDtEjqfgzLr/DtskKu02jyL3o2aXY0PmUtUX0QVDBOD9QImXOPLJGtagDfYER","fingerprint":"59:4a:b2:bf:13:8c:e4:18:dc:49:24:4b:37:f1:5d:2e","created_at":"2026-01-14T15:56:40+00:00","updated_at":"2026-01-14T15:56:40+00:00","project":{"id":"proj_RMLydp7XOQKr1","name":"Lightweight Silk Wallet","slug":"lightweight-silk-wallet","description":"Synergistic Copper Coat","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}},"user":{"id":"user_Gz4meW9wlVc2Q36vbgXgu05XYgo","first_name":"Tracy","last_name":"Corkery","email":"bennett@johnson-beatty.example","created_at":"2025-11-29T00:00:00.000Z","updated_at":"2025-12-07T00:00:00.000Z","role":{"id":"role_Jp9VwYlWgbTMl0Po7RpYteZX4pj","name":"owner","created_at":"2025-10-11T00:00:00.000Z","updated_at":"2026-08-03T00:00:00.000Z"}}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/ssh_keys"}}}}}},"post":{"summary":"Create SSH Key","operationId":"post-project-ssh-key","tags":["SSH Keys"],"deprecated":true,"security":[{"Bearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"description":"Project ID or Slug","examples":{"Created":{"value":"proj_059EqYE2qQj8p"}},"schema":{"type":"string"}}],"description":"Allow you create SSH Keys in a project. These keys can be used to access servers after deploy and reinstall actions.\n","x-mint":{"href":"/api-reference/post-project-ssh-key"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"ssh_w5AEmq7XDBkWX","type":"ssh_keys","attributes":{"tags":[],"name":"SSH Key","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOLFnjGP3Jsh1usHNS2EILgfqZNC9pOvNqBZqxH+qNAdZdQCzy2csMuiq+ZwLA8Mm4Vo5CvSgBHs/kuZRUKyTl+79YUMZIj8PhHzL4XbdqX1ZnAIklHWcJaveB0+UXLEPKGzFIFq+FkuwtiXQsVe5NnSpIDYgpzhqEs38NsnXvsubKphGUdARDhaxvMdUUl4YsAtLHKMzSyIvE6xwfTtIVwA9bZt/8GoBzrn9px9PEcf25Rgd2NhOYs3WYcZuwvRmfcFdi2vGhVqTPqL9n16R/n5jknxHYrTyqWNxJdpdvg2YqXpN7vnFNoOjYFD6EahJ0pF/+WL4tPCIkLfoaVaSx","fingerprint":"0a:00:34:53:51:0e:a5:4e:06:2c:d7:16:88:96:82:f3","created_at":"2026-01-14T15:56:41+00:00","updated_at":"2026-01-14T15:56:41+00:00","project":{"id":"proj_059EqYE2qQj8p","name":"Incredible Silk Pants","slug":"incredible-silk-pants","description":"Lightweight Iron Bench","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}},"user":{"id":"user_geJbN1G962iVzBrra7R9TkaXw28","first_name":"Fletcher","last_name":"Thompson","email":"shawn@klein.example","created_at":"2025-12-31T00:00:00.000Z","updated_at":"2025-05-16T00:00:00.000Z","role":{"id":"role_QJ5olj6Jk7uWz0ybo0XkcXYZegPo","name":"owner","created_at":"2025-12-23T00:00:00.000Z","updated_at":"2026-03-20T00:00:00.000Z"}}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ssh_key_data"}}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["ssh_keys"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the SSH Key"},"public_key":{"type":"string","description":"SSH Public Key"}},"required":["name","public_key"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"ssh_keys","attributes":{"name":"SSH Key","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOLFnjGP3Jsh1usHNS2EILgfqZNC9pOvNqBZqxH+qNAdZdQCzy2csMuiq+ZwLA8Mm4Vo5CvSgBHs/kuZRUKyTl+79YUMZIj8PhHzL4XbdqX1ZnAIklHWcJaveB0+UXLEPKGzFIFq+FkuwtiXQsVe5NnSpIDYgpzhqEs38NsnXvsubKphGUdARDhaxvMdUUl4YsAtLHKMzSyIvE6xwfTtIVwA9bZt/8GoBzrn9px9PEcf25Rgd2NhOYs3WYcZuwvRmfcFdi2vGhVqTPqL9n16R/n5jknxHYrTyqWNxJdpdvg2YqXpN7vnFNoOjYFD6EahJ0pF/+WL4tPCIkLfoaVaSx"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["ssh_keys"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the SSH Key"},"public_key":{"type":"string","description":"SSH Public Key"}}}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"ssh_keys","attributes":{"name":"SSH Key","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOLFnjGP3Jsh1usHNS2EILgfqZNC9pOvNqBZqxH+qNAdZdQCzy2csMuiq+ZwLA8Mm4Vo5CvSgBHs/kuZRUKyTl+79YUMZIj8PhHzL4XbdqX1ZnAIklHWcJaveB0+UXLEPKGzFIFq+FkuwtiXQsVe5NnSpIDYgpzhqEs38NsnXvsubKphGUdARDhaxvMdUUl4YsAtLHKMzSyIvE6xwfTtIVwA9bZt/8GoBzrn9px9PEcf25Rgd2NhOYs3WYcZuwvRmfcFdi2vGhVqTPqL9n16R/n5jknxHYrTyqWNxJdpdvg2YqXpN7vnFNoOjYFD6EahJ0pF/+WL4tPCIkLfoaVaSx"}}}}}}},"required":true}}},"/projects/{project_id}/ssh_keys/{ssh_key_id}":{"get":{"summary":"Retrieve Project SSH Key","operationId":"get-project-ssh-key","tags":["SSH Keys"],"deprecated":true,"security":[{"Bearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"description":"Project ID or Slug","examples":{"Success":{"value":"proj_kjQwdE0XOYNVP"}},"schema":{"type":"string"}},{"name":"ssh_key_id","in":"path","required":true,"examples":{"Success":{"value":"ssh_zGr47qlMDAg0m"}},"schema":{"type":"string"}}],"description":"List all SSH Keys in the project. These keys can be used to access servers after deploy and reinstall actions.\n","x-mint":{"href":"/api-reference/get-project-ssh-key"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"ssh_zGr47qlMDAg0m","type":"ssh_keys","attributes":{"tags":[],"name":"breitenberg-blick.test","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCUO+zsQdGJJGFIJT6R9PRgnfpA1NiIMBmfZK13pmAsC/aEr4TvJT+q60U2DZVeQi2AxdPwk3JrGpOgDUOKA9M6FlCXjCMWS5VINwbt6+P7ZCSThqdPPETrcDNd2wgNs+Q5kxRHqlknDu4KszIf14cXNnWCYjCly2+wV/Y17XuHGhHnzRSCf30mNtqQngKqkOHOB+G2P8RaZ6g70wOOoSlDRo3mxQ0vA62U25FeTbFdhkIrFDYsPX+4JL1bXYkRD3KIbfvH99RHtd/wtcqwpUuHoKdyiUNyJFBvtj912zVh+0n8zfe58Rmz0J9wGCTir3Qh/FwAVKB2kLpRHde7kZlv","fingerprint":"47:0f:68:b5:e7:4c:5c:32:b6:97:3d:e9:17:df:6d:93","created_at":"2026-01-14T15:56:41+00:00","updated_at":"2026-01-14T15:56:41+00:00","project":{"id":"proj_kjQwdE0XOYNVP","name":"Intelligent Rubber Bench","slug":"intelligent-rubber-bench","description":"Rustic Linen Clock","provisioning_type":"on_demand","billing_type":"Hourly","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}},"user":{"id":"user_0VVWJmQwmzUyMYL0Zv37FwW0aWVP","first_name":"Margarete","last_name":"Huels","email":"charlie@okeefe.example","created_at":"2025-09-01T00:00:00.000Z","updated_at":"2025-12-20T00:00:00.000Z","role":{"id":"role_jZxLKXzGNXt0PYgaW4QbfKMPEgM","name":"owner","created_at":"2025-03-24T00:00:00.000Z","updated_at":"2026-06-05T00:00:00.000Z"}}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ssh_key_data"}}}}}}}},"patch":{"summary":"Update Project SSH Key","operationId":"put-project-ssh-key","deprecated":true,"tags":["SSH Keys"],"security":[{"Bearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"description":"Project ID or Slug","examples":{"Success":{"value":"proj_v9BVDaR3ORm1W"}},"schema":{"type":"string"}},{"name":"ssh_key_id","in":"path","required":true,"examples":{"Success":{"value":"ssh_zlkg1DegdvZE5"}},"schema":{"type":"string"}}],"description":"Allow you update SSH Key in a project. These keys can be used to access servers after deploy and reinstall actions.\n","x-mint":{"href":"/api-reference/put-project-ssh-key"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"ssh_zlkg1DegdvZE5","type":"ssh_keys","attributes":{"tags":[{"id":"tag_rB7B21L1QbiJ6yWYxQLmHWJE3GmR","name":"Dáin Ironfoot","description":"Non quos voluptatem voluptatem.","color":"#254646"},{"id":"tag_57nzyG0Bn3c5wooyYyeLH1w9kmN","name":"Almiel","description":"Repellendus quae velit rerum.","color":"#2121e8"}],"name":"ruecker.example","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDbDuCsEBno4lL6+lLXiBuziWK+go4/TQ2xXWNkyO9PEQSwp8t7fu5USARgUl5HxRK2K+enzTOGVYG+IGWTh8GsNQ68D+6VQZDafStcAoRX7/drrIbkMho3Fv5o5mfjIeMB9A6yT7FxsWFx4VkV8wlCLn3HSq/Q2fvuKh3j10B/ZKCG14K2Que9xrGhCbAGVzxrCozWc4yCdpXSL0CFUOOQDpOa44VzcMVkXqxyaJYDjlxMklfGQ/81YjtM5hne0kFPajeVmHZGQ7QsZZEww/P7c0pL44n9b/sYmzHOuZYFCM3MuU2pfonEJBOVfFVeXh5pPvUmis8mxxCAQhtzJE4D","fingerprint":"17:c4:55:c4:1b:a3:1f:fd:89:70:2d:c3:55:7a:4c:6e","created_at":"2026-01-14T15:56:42+00:00","updated_at":"2026-01-14T15:56:42+00:00","project":{"id":"proj_v9BVDaR3ORm1W","name":"Sleek Linen Lamp","slug":"sleek-linen-lamp","description":"Ergonomic Rubber Gloves","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}},"user":{"id":"user_Rzg2JEoZNASA1bznzWJBI6GXJ0v","first_name":"Meghann","last_name":"Windler","email":"jonah_bartoletti@mueller.example","created_at":"2026-01-10T00:00:00.000Z","updated_at":"2025-03-26T00:00:00.000Z","role":{"id":"role_6noZ5alPanUpr0yoVygMCL6mK88","name":"owner","created_at":"2025-07-29T00:00:00.000Z","updated_at":"2026-05-30T00:00:00.000Z"}}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ssh_key_data"}}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["ssh_keys"]},"attributes":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"}},"name":{"type":"string","description":"Name of the SSH Key"}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"ssh_zlkg1DegdvZE5","type":"ssh_keys","attributes":{"tags":["tag_rB7B21L1QbiJ6yWYxQLmHWJE3GmR","tag_57nzyG0Bn3c5wooyYyeLH1w9kmN"]}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["ssh_keys"]},"attributes":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"}},"name":{"type":"string","description":"Name of the SSH Key"}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"ssh_zlkg1DegdvZE5","type":"ssh_keys","attributes":{"tags":["tag_rB7B21L1QbiJ6yWYxQLmHWJE3GmR","tag_57nzyG0Bn3c5wooyYyeLH1w9kmN"]}}}}}}},"required":true}},"delete":{"summary":"Delete Project SSH Key","operationId":"delete-project-ssh-key","tags":["SSH Keys"],"deprecated":true,"security":[{"Bearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"description":"Project ID or Slug","examples":{"Success":{"value":"proj_LA73qk4wDaJ2o"}},"schema":{"type":"string"}},{"name":"ssh_key_id","in":"path","required":true,"examples":{"Success":{"value":"ssh_7vYAZqGBdMQ94"}},"schema":{"type":"string"}}],"description":"Allow you remove SSH Keys in a project. Remove a SSH Key from the project won't revoke the SSH Keys access for previously deploy and reinstall actions.\n","x-mint":{"href":"/api-reference/delete-project-ssh-key"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"meta":{}}}}}}}}}},"/storage/usage":{"get":{"summary":"List storage usage","operationId":"get-storage-usage","tags":["Object Storage"],"security":[{"Bearer":[]}],"parameters":[{"name":"filter[project]","in":"query","description":"Project ID or Slug","required":true,"examples":{"Success":{"value":"proj_5AEmq7wMqBkWX"}},"schema":{"type":"string"}},{"name":"filter[storage_id]","in":"query","required":false,"description":"Restrict the result to a single storage. Accepts the storage/bucket ID","examples":{"Success":{"value":"bkt_6VE1Wd37dXnZJ"}},"schema":{"type":"string"}},{"name":"filter[start_date]","in":"query","required":false,"description":"Defaults to yesterday","schema":{"type":"string","format":"date"}},{"name":"filter[end_date]","in":"query","required":false,"description":"Defaults to today; clamped to today when a future date is given","schema":{"type":"string","format":"date"}}],"description":"Returns daily object storage usage for a project. Each row reports the canonical usage in bytes for a single storage on a given day, plus the provider-reported raw value.\n","x-mint":{"href":"/api-reference/get-storage-usage"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"42_2026-01-02","type":"storage_usage","attributes":{"date":"2026-01-02","storage_type":"object","tier":"standard","region":"us-east-1","bytes":10737418240,"raw_value":10.0,"raw_unit":"GiB","ingested_at":"2026-01-03T04:15:00+00:00"}}]}}},"schema":{"$ref":"#/components/schemas/storage_usage"}}}}}}},"/projects/{project_id}/user_data":{"get":{"summary":"List Project user data","operationId":"get-project-users-data","tags":["User data"],"deprecated":true,"security":[{"Bearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"description":"Project ID or Slug","examples":{"Success":{"value":"proj_LYV8DZYQq5QoE"}},"schema":{"type":"string"}},{"name":"extra_fields[user_data]","in":"query","schema":{"type":"string","default":"decoded_content"},"description":"The `decoded_content` is provided as an extra attribute that shows content in decoded form.","examples":{"Success":{"value":"decoded_content"}}}],"description":"List all Users Data in the project. These scripts can be used to configure servers with user data.\n","x-mint":{"href":"/api-reference/get-project-users-data"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"ud_AW6Q2D9lqKLpr","type":"user_data","attributes":{"description":"Three eggs with cilantro, tomatoes, onions, avocados and melted Emmental cheese. With a side of roasted potatoes, and your choice of toast or croissant.","content":"QnJlYWRlZCBmcmllZCBjaGlja2VuIHdpdGggd2FmZmxlcywgYW5kIGEgc2lkZSBvZiBtYXBsZSBzeXJ1cC4=","created_at":"2026-01-14T15:56:43+00:00","updated_at":"2026-01-14T15:56:43+00:00","decoded_content":"Breaded fried chicken with waffles, and a side of maple syrup.","project":{"id":"proj_LYV8DZYQq5QoE","name":"Sleek Cotton Bottle","slug":"sleek-cotton-bottle","description":"Intelligent Aluminum Watch","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/user_data"}}}}}},"post":{"summary":"Create Project user data","operationId":"post-project-user-data","deprecated":true,"tags":["User data"],"security":[{"Bearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"description":"Project ID or Slug","examples":{"Created":{"value":"proj_8NkvdyMKdeLpx"}},"schema":{"type":"string"}}],"description":"Allows you to create User Data in a project, which can be used to perform custom setup on your servers after deploy and reinstall.\n","x-mint":{"href":"/api-reference/post-project-user-data"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"ud_pRMLydp0dQKr1","type":"user_data","attributes":{"description":"User Data description","content":"I2Nsb3VkLWNvbmZpZwpydW5jbWQ6CiAtIFsgdG91Y2gsICAvaG9tZS91YnVudHUvdGVzdCBd","created_at":"2026-01-14T15:56:43+00:00","updated_at":"2026-01-14T15:56:43+00:00","decoded_content":"#cloud-config\nruncmd:\n - [ touch,  /home/ubuntu/test ]","project":{"id":"proj_8NkvdyMKdeLpx","name":"Intelligent Bronze Car","slug":"intelligent-bronze-car","description":"Small Iron Shoes","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}}}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/user_data_object"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["user_data"]},"attributes":{"type":"object","properties":{"description":{"type":"string","description":"description of the User Data"},"content":{"type":"string","description":"base64 encoded content of the User Data"}},"required":["content","description"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"user_data","attributes":{"content":"I2Nsb3VkLWNvbmZpZwpydW5jbWQ6CiAtIFsgdG91Y2gsICAvaG9tZS91YnVudHUvdGVzdCBd","description":"User Data description"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["user_data"]},"attributes":{"type":"object","properties":{"description":{"type":"string","description":"description of the User Data"},"content":{"type":"string","description":"base64 encoded content of the User Data"}},"required":["content","description"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"user_data","attributes":{"content":"I2Nsb3VkLWNvbmZpZwpydW5jbWQ6CiAtIFsgdG91Y2gsICAvaG9tZS91YnVudHUvdGVzdCBd","description":"User Data description"}}}}}}},"required":true}}},"/projects/{project_id}/user_data/{user_data_id}":{"get":{"summary":"Retrieve Project user data","operationId":"get-project-user-data","deprecated":true,"tags":["User data"],"security":[{"Bearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"description":"Project ID or Slug","examples":{"Success":{"value":"proj_e8pKq0GYdWAob"}},"schema":{"type":"string"}},{"name":"user_data_id","in":"path","required":true,"examples":{"Success":{"value":"ud_VLMmAD8EOwop2"}},"schema":{"type":"string"}},{"name":"extra_fields[user_data]","in":"query","schema":{"type":"string","default":"decoded_content"},"description":"The `decoded_content` is provided as an extra attribute that shows content in decoded form.","examples":{"Success":{"value":"decoded_content"}}}],"description":"Get User Data in the project. These scripts can be used to configure servers with user data.\n","x-mint":{"href":"/api-reference/get-project-user-data"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"ud_VLMmAD8EOwop2","type":"user_data","attributes":{"description":"Three egg omelet with Roquefort cheese, chives, and ham. With a side of roasted potatoes, and your choice of toast or croissant.","content":"Q3JlYW15IG1hc2NhcnBvbmUgY2hlZXNlIGFuZCBjdXN0YXJkIGxheWVyZWQgYmV0d2VlbiBlc3ByZXNzbyBhbmQgcnVtIHNvYWtlZCBob3VzZS1tYWRlIGxhZHlmaW5nZXJzLCB0b3BwZWQgd2l0aCBWYWxyaG9uYSBjb2NvYSBwb3dkZXIu","created_at":"2026-01-14T15:56:43+00:00","updated_at":"2026-01-14T15:56:43+00:00","decoded_content":"Creamy mascarpone cheese and custard layered between espresso and rum soaked house-made ladyfingers, topped with Valrhona cocoa powder.","project":{"id":"proj_e8pKq0GYdWAob","name":"Enormous Silk Car","slug":"enormous-silk-car","description":"Aerodynamic Granite Bag","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}}}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/user_data_object"}}}}}},"patch":{"summary":"Update Project user data","operationId":"put-project-user-data","tags":["User data"],"deprecated":true,"security":[{"Bearer":[]}],"parameters":[{"name":"project_id","in":"path","required":true,"description":"Project ID or Slug","schema":{"type":"string"}},{"name":"user_data_id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Allow you update User Data in a project.\n","x-mint":{"href":"/api-reference/put-project-user-data"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/user_data_object"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["user_data"]},"attributes":{"type":"object","properties":{"description":{"type":"string","description":"description dummy user data"},"content":{"type":"string","description":"encoded content of the User Data"}}}},"required":["id","type"]}},"required":["data"]}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["user_data"]},"attributes":{"type":"object","properties":{"description":{"type":"string","description":"description dummy user data"},"content":{"type":"string","description":"encoded content of the User Data"}}}},"required":["id","type"]}},"required":["data"]}}}}},"delete":{"summary":"Delete Project user data","operationId":"delete-project-user-data","tags":["User data"],"security":[{"Bearer":[]}],"deprecated":true,"parameters":[{"name":"project_id","in":"path","required":true,"description":"Project ID or Slug","schema":{"type":"string"}},{"name":"user_data_id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Allow you remove User Data in a project.\n","x-mint":{"href":"/api-reference/delete-project-user-data"},"responses":{"204":{"description":"No Content"}}}},"/regions":{"get":{"summary":"List regions","operationId":"get-regions","tags":["Regions"],"security":[{"Bearer":[]}],"description":"Lists all [available locations](https://latitude.sh/locations). For server availability by location, please see the [Plans API](/reference/get-plans).\n\n","parameters":[{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"},{"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"},{"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."},{"name":"include_custom","in":"query","required":false,"description":"When set to `true`, the response also includes custom regions (such as storage-only regions) alongside the default core regions. When omitted or `false`, only core regions are returned.","schema":{"type":"boolean"}},{"name":"filter[features]","in":"query","required":false,"description":"Return only locations that support the given capability, e.g. `filter[features]=public_network`.","schema":{"type":"string"}}],"x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"},{"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}},"x-mint":{"href":"/api-reference/get-regions"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"loc_k0RyqvNvqW36X","type":"regions","attributes":{"name":"Luettgen Group","slug":"luettgen-group","facility":"Luettgen Group","country":{"name":"Grant and Sons","slug":"grant-and-sons"},"type":"core","features":["public_network"]}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/regions"}}}}}}},"/regions/{region_id}":{"get":{"summary":"Retrieve region","operationId":"get-region","tags":["Regions"],"security":[{"Bearer":[]}],"parameters":[{"name":"region_id","in":"path","description":"The region region_ID","required":true,"examples":{"Success":{"value":"reg_GMy1DbYLqN50m"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-region"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"loc_WVQJDMQlDRbyE","type":"regions","attributes":{"name":"Durgan-Wunsch","slug":"durgan-wunsch","facility":"Durgan-Wunsch","country":{"name":"Kreiger-Muller","slug":"kreiger-muller"},"type":"core","features":["public_network"]}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/region"}}}}}}},"/roles":{"get":{"summary":"List roles","operationId":"get-roles","tags":["Roles"],"security":[{"Bearer":[]}],"description":"Returns a list of all roles that can be assigned to users\n","parameters":[{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"},{"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"},{"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}],"x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"},{"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}},"x-mint":{"href":"/api-reference/get-roles"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"role_0L6WO1vEdPlXy","type":"roles","attributes":{"name":"collaborator"}}],"meta":{}}}},"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/role_data"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}}}}}}}},"/roles/{role_id}":{"get":{"summary":"Retrieve role","operationId":"get-role-id","tags":["Roles"],"security":[{"Bearer":[]}],"parameters":[{"name":"role_id","in":"path","required":true,"examples":{"Success":{"value":"role_LMmAD8vldwop2"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-role-id"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"role_LMmAD8vldwop2","type":"roles","attributes":{"name":"billing"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/role"}}}}}}},"/servers":{"get":{"summary":"List servers","operationId":"get-servers","tags":["Servers"],"parameters":[{"name":"filter[project]","in":"query","required":false,"description":"The project ID or Slug to filter by","schema":{"type":"string"}},{"name":"filter[region]","in":"query","required":false,"description":"The region Slug to filter by","schema":{"type":"string"}},{"name":"filter[hostname]","in":"query","required":false,"description":"The hostname of server to filter by","schema":{"type":"string"}},{"name":"filter[created_at_gte]","in":"query","required":false,"description":"The created at greater than equal date to filter by","schema":{"type":"string"}},{"name":"filter[created_at_lte]","in":"query","required":false,"description":"The created at less than equal date to filter by","schema":{"type":"string"}},{"name":"filter[label]","in":"query","required":false,"description":"The label of server to filter by","schema":{"type":"string"}},{"name":"filter[status]","in":"query","required":false,"description":"The status of server to filter by","schema":{"type":"string"}},{"name":"filter[plan]","in":"query","required":false,"description":"The platform/plan name of the server to filter by","schema":{"type":"string"}},{"name":"filter[gpu]","in":"query","required":false,"description":"Filter by the existence of an associated GPU","schema":{"type":"boolean"}},{"name":"filter[ram][eql]","in":"query","required":false,"description":"Filter servers with RAM size (in GB) equals the provided value.","schema":{"type":"integer"}},{"name":"filter[ram][gte]","in":"query","required":false,"description":"Filter servers with RAM size (in GB) greater than or equal the provided value.","schema":{"type":"integer"}},{"name":"filter[ram][lte]","in":"query","required":false,"description":"Filter servers with RAM size (in GB) less than or equal the provided value.","schema":{"type":"integer"}},{"name":"filter[disk][eql]","in":"query","required":false,"description":"Filter servers with disk size (in GB) equal to the provided value.","schema":{"type":"integer"}},{"name":"filter[disk][gte]","in":"query","required":false,"description":"Filter servers with disk size (in GB) greater than or equal to the provided value.","schema":{"type":"integer"}},{"name":"filter[disk][lte]","in":"query","required":false,"description":"Filter servers with disk size (in GB) less than or equal to the provided value.","schema":{"type":"integer"}},{"name":"filter[tags]","in":"query","required":false,"description":"The tags IDs to filter by, separated by comma, e.g. `filter[tags]=tag_1,tag_2`will return servers with `tag_1` AND `tag_2`","examples":{"Success":{"value":"tag_pjAkRjVzw0tlYBA2WX1eHzW7w79,tag_yARk1KLJAvslWY7k5wNBCaKEV7e"}},"schema":{"type":"string"}},{"name":"extra_fields[servers]","in":"query","required":false,"description":"The `credentials` are provided as extra attributes that are lazy loaded. To request it, just set `extra_fields[servers]=credentials` in the query string.","schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"description":"Comma-separated sort fields. Prefix a field with `-` for descending order. Supported: hostname, created_at, location, operating_system.","schema":{"type":"string"}},{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"},{"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"},{"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}],"security":[{"Bearer":[]}],"description":"Returns a list of all servers belonging to the team.\n","x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"},{"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}},"x-mint":{"href":"/api-reference/get-servers"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"sv_WeGoqAanqP7nz","type":"servers","attributes":{"tags":[{"id":"tag_pjAkRjVzw0tlYBA2WX1eHzW7w79","name":"tag1","description":"Autem tempora est aperiam.","color":"#160303"},{"id":"tag_yARk1KLJAvslWY7k5wNBCaKEV7e","name":"tag2","description":"Vitae cupiditate doloribus optio.","color":"#ee6dee"}],"hostname":"Hostname","label":"832845NODEKG","price":599.0,"role":"Bare Metal","primary_ipv4":"19.98.98.65","primary_ipv6":"49e5:fef3:7891:16df:ccf6:93bb:a930:4dc0","status":"on","ipmi_status":"Normal","created_at":null,"scheduled_deletion_at":null,"locked":false,"rescue_allowed":false,"region":{"city":"São Paulo 74","country":"Singapore 66","site":{"id":"loc_695BdKjrOevVo","name":"São Paulo 74","slug":"SAO","facility":"São Paulo 74","rack_id":"rack_VLMmAD8EOwop2"}},"team":{"id":"team_Ygapr2KkrMur4QneZ00yUEGl4W2","name":"292 Team","slug":"292-team","description":"292 Team","address":"Apt. 180 27016 Chi Prairie, Kenyaport, CA 12866","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null},"status":"verified","feature_flags":[],"limits":{"bare_metal":null,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}},"project":{"id":"proj_Z8rodmnGq1jLB","name":"Incredible Linen Car","slug":"incredible-linen-car","description":"Lightweight Iron Chair","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":1,"ip_addresses":8,"prefixes":0,"servers":3,"storages":0,"virtual_machines":0,"vlans":0}},"plan":{"id":"plan_pbV0Dg1Rd4AWz","name":"g3.h100.small-51","slug":"plan-slug","billing":"hourly"},"interfaces":[{"role":"ipmi","name":"IPMI","mac_address":"00:11:22:33:44:55","description":"IPMI Interface"},{"role":"internal","name":"PXE","mac_address":"66:77:88:99:aa:bb","description":"PXE Interface"},{"role":"unknown","name":"PO1","mac_address":null,"description":"LAG interface (no associated MAC record)"}],"operating_system":{"name":"Ubuntu (18.04 x64 LTS)","slug":"ubuntu_18_04_x64_lts","version":"18.04 x64 LTS","features":{"raid":true,"ssh_keys":true},"distro":{"name":"Ubuntu","slug":"ubuntu","series":"bionic"}},"specs":{"cpu":"Xeon E-2186G CPU @ 3.80GHz (6 cores)","disk":"500 GB SSD","ram":"32 GB","nic":"","gpu":null}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/servers"}}}}}},"post":{"summary":"Create server","operationId":"create-server","tags":["Servers"],"security":[{"Bearer":[]}],"parameters":[],"x-mint":{"href":"/api-reference/create-server"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"type":"servers","id":"sv_W6Q2D9xGqKLpr","attributes":{"hostname":"BRC1","label":"846419NODEME","role":"Bare Metal","status":"off","primary_ipv4":"171.189.35.253","primary_ipv6":"7d69:748d:26cc:796a:1248:b6be:a658:96a4","specs":{"cpu":"Xeon E-2186G CPU @ 3.80GHz (6 cores)","disk":"500 GB SSD","ram":"32 GB","nic":""},"plan":{"id":"plan_8NkvdyMKdeLpx","name":"c2.small.x86","slug":"c2-small-x86","billing":"hourly"},"interfaces":[{"role":"ipmi","name":"IPMI","mac_address":"00:11:22:33:44:55","description":"IPMI Interface"},{"role":"internal","name":"PXE","mac_address":"66:77:88:99:aa:bb","description":"PXE Interface"},{"role":"unknown","name":"PO1","mac_address":null,"description":"LAG interface (no associated MAC record)"}]}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/server"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["servers"]},"attributes":{"type":"object","properties":{"project":{"type":"string","description":"The project (ID or Slug) to deploy the server"},"plan":{"type":"string","description":"The plan slug to choose server from, defining the specs the server will have","x-speakeasy-unknown-values":"allow","enum":["c2-large-x86","c2-medium-x86","c2-small-x86","c3-large-x86","c3-medium-x86","c3-small-x86","c3-xlarge-x86","g3-gh200","g3-large-x86","g3-medium-x86","g3-small-x86","g3-xlarge-x86","g4-rtx6kpro-large","m3-large-x86","m4-metal-large","m4-metal-small","rs4-metal-xlarge","s2-small-x86","s3-large-x86"]},"site":{"type":"string","description":"The site slug to deploy the server","x-speakeasy-unknown-values":"allow","enum":["ASH","BUE","CHI","DAL","FRA","LAX","LON","MEX","MEX2","MIA","MIA2","NYC","SAO","SAO2","SGP","SYD","TYO","TYO2"]},"operating_system":{"type":"string","description":"The operating system slug for the new server","x-speakeasy-unknown-values":"allow","enum":["centos_7_4_x64","centos_8_x64","debian_10","debian_11","debian_12","ipxe","rhel8","rockylinux_8","ubuntu22_ml_in_a_box","ubuntu24_ml_in_a_box","ubuntu_20_04_x64_lts","ubuntu_22_04_x64_lts","ubuntu_24_04_x64_lts","windows_2022_std","windows_server_2019_std_v1"]},"hostname":{"type":"string","description":"The server hostname"},"ssh_keys":{"type":"array","items":{"type":"string"},"description":"SSH Keys to set on the server","nullable":true},"user_data":{"type":"string","description":"User data ID to set on the server. This is a custom script that will run after the deploy","nullable":true},"raid":{"type":"string","description":"RAID mode for the server. Set to 'raid-0' for RAID 0, 'raid-1' for RAID 1, or omit/null for no RAID configuration","enum":["raid-0","raid-1"],"nullable":true},"disk_layout":{"type":"array","nullable":true,"items":{"type":"object","required":["count","role"],"properties":{"count":{"type":"integer","minimum":1},"role":{"type":"string","enum":["os","storage","raw"]},"raid_level":{"type":"string","enum":["raid-0","raid-1"],"nullable":true},"filesystem":{"type":"string","enum":["ext4","xfs"],"nullable":true},"mount_point":{"type":"string","nullable":true}}}},"ipxe":{"type":"string","description":"URL where iPXE script is stored on, OR the iPXE script encoded in base64. This attribute is required when iPXE is selected as operating system.","nullable":true},"public_network":{"type":"boolean","nullable":true,"description":"**Preview.** Available to teams with public networks enabled. Set to true to deploy the server attached to the given public_network_id. Requires public_network_id; only public-network-capable stock is selected."},"public_network_id":{"type":"string","nullable":true,"description":"**Preview.** Available to teams with public networks enabled. ID of a customer public network to attach the server onto. Requires public_network: true. The public network must belong to the same project and location as the deployment and have a free address."},"persistent_netboot":{"type":"boolean","description":"Keep network boot enabled so the server iPXE-boots on every reboot instead of booting from disk. Only supported with the 'ipxe' operating system."},"bgp_ready":{"type":"boolean","nullable":true,"description":"Deploy the server onto hardware that can announce an Elastic IP over BGP."},"billing":{"type":"string","enum":["hourly","monthly","yearly"],"description":"The server billing type. Accepts `hourly` and `monthly` for on demand projects and `yearly` for reserved projects.","nullable":true}},"required":["project","plan","site","operating_system","hostname"]}},"required":["type"]}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"servers","attributes":{"project":"proj_lxWpD699qm6rk","plan":"c2-small-x86","site":"ASH","operating_system":"ubuntu_22_04_x64_lts","hostname":"BRC1"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["servers"]},"attributes":{"type":"object","properties":{"project":{"type":"string","description":"The project (ID or Slug) to deploy the server"},"plan":{"type":"string","description":"The plan slug to choose server from, defining the specs the server will have","x-speakeasy-unknown-values":"allow","enum":["c2-large-x86","c2-medium-x86","c2-small-x86","c3-large-x86","c3-medium-x86","c3-small-x86","c3-xlarge-x86","g3-gh200","g3-large-x86","g3-medium-x86","g3-small-x86","g3-xlarge-x86","g4-rtx6kpro-large","m3-large-x86","m4-metal-large","m4-metal-small","rs4-metal-xlarge","s2-small-x86","s3-large-x86"]},"site":{"type":"string","description":"The site slug to deploy the server","x-speakeasy-unknown-values":"allow","enum":["ASH","BUE","CHI","DAL","FRA","LAX","LON","MEX","MEX2","MIA","MIA2","NYC","SAO","SAO2","SGP","SYD","TYO","TYO2"]},"operating_system":{"type":"string","description":"The operating system slug for the new server","x-speakeasy-unknown-values":"allow","enum":["centos_7_4_x64","centos_8_x64","debian_10","debian_11","debian_12","ipxe","rhel8","rockylinux_8","ubuntu22_ml_in_a_box","ubuntu24_ml_in_a_box","ubuntu_20_04_x64_lts","ubuntu_22_04_x64_lts","ubuntu_24_04_x64_lts","windows_2022_std","windows_server_2019_std_v1"]},"hostname":{"type":"string","description":"The server hostname"},"ssh_keys":{"type":"array","items":{"type":"string"},"description":"SSH Keys to set on the server","nullable":true},"user_data":{"type":"string","description":"User data ID to set on the server. This is a custom script that will run after the deploy","nullable":true},"raid":{"type":"string","description":"RAID mode for the server. Set to 'raid-0' for RAID 0, 'raid-1' for RAID 1, or omit/null for no RAID configuration","enum":["raid-0","raid-1"],"nullable":true},"disk_layout":{"type":"array","nullable":true,"items":{"type":"object","required":["count","role"],"properties":{"count":{"type":"integer","minimum":1},"role":{"type":"string","enum":["os","storage","raw"]},"raid_level":{"type":"string","enum":["raid-0","raid-1"],"nullable":true},"filesystem":{"type":"string","enum":["ext4","xfs"],"nullable":true},"mount_point":{"type":"string","nullable":true}}}},"ipxe":{"type":"string","description":"URL where iPXE script is stored on, OR the iPXE script encoded in base64. This attribute is required when iPXE is selected as operating system.","nullable":true},"public_network":{"type":"boolean","nullable":true,"description":"**Preview.** Available to teams with public networks enabled. Set to true to deploy the server attached to the given public_network_id. Requires public_network_id; only public-network-capable stock is selected."},"public_network_id":{"type":"string","nullable":true,"description":"**Preview.** Available to teams with public networks enabled. ID of a customer public network to attach the server onto. Requires public_network: true. The public network must belong to the same project and location as the deployment and have a free address."},"persistent_netboot":{"type":"boolean","description":"Keep network boot enabled so the server iPXE-boots on every reboot instead of booting from disk. Only supported with the 'ipxe' operating system."},"bgp_ready":{"type":"boolean","nullable":true,"description":"Deploy the server onto hardware that can announce an Elastic IP over BGP."},"billing":{"type":"string","enum":["hourly","monthly","yearly"],"description":"The server billing type. Accepts `hourly` and `monthly` for on demand projects and `yearly` for reserved projects.","nullable":true}}}},"required":["type"]}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"servers","attributes":{"project":"proj_lxWpD699qm6rk","plan":"c2-small-x86","site":"ASH","operating_system":"ubuntu_22_04_x64_lts","hostname":"BRC1"}}}}}}},"required":true}}},"/servers/{server_id}":{"get":{"summary":"Retrieve server","operationId":"get-server","tags":["Servers"],"security":[{"Bearer":[]}],"parameters":[{"name":"server_id","in":"path","description":"The Server ID","required":true,"examples":{"Success":{"value":"sv_VE1Wd3aXDXnZJ"}},"schema":{"type":"string"}},{"name":"extra_fields[servers]","in":"query","required":false,"description":"The `credentials` are provided as extra attributes that is lazy loaded. To request it, just set `extra_fields[servers]=credentials` in the query string.","schema":{"type":"string"}}],"description":"Returns a server that belongs to the team.\n","x-mint":{"href":"/api-reference/get-server"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"sv_VE1Wd3aXDXnZJ","type":"servers","attributes":{"tags":[],"hostname":"Hostname","label":"327106NODEQI","price":599.0,"role":"Bare Metal","primary_ipv4":"9.120.132.45","primary_ipv6":"889e:8540:973b:5c04:abce:2551:47ae:a67e","status":"on","ipmi_status":"Normal","created_at":null,"scheduled_deletion_at":null,"locked":false,"rescue_allowed":false,"region":{"city":"São Paulo 81","country":"Mexico 73","site":{"id":"loc_GMy1DbNgDN50m","name":"São Paulo 81","slug":"SAO","facility":"São Paulo 81","rack_id":"rack_6VE1Wd37dXnZJ"}},"team":{"id":"team_M2WyX3zpQMf5Wvaw6zkotLZx0Ne","name":"308 Team","slug":"308-team","description":"308 Team","address":"Suite 667 299 Enoch Lights, Lake Lilli, MT 24573-1532","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null},"status":"verified","feature_flags":[],"limits":{"bare_metal":null,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}},"project":{"id":"proj_LMmAD8E4Owop2","name":"Awesome Granite Chair","slug":"awesome-granite-chair","description":"Mediocre Paper Wallet","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":2,"prefixes":0,"servers":1,"storages":0,"virtual_machines":0,"vlans":0}},"plan":{"id":"plan_yQrJdN9JO30gv","name":"c2.large.arm","slug":"c2-large-arm","billing":"hourly"},"interfaces":[{"role":"ipmi","name":"IPMI","mac_address":"00:11:22:33:44:55","description":"IPMI Interface"},{"role":"internal","name":"PXE","mac_address":"66:77:88:99:aa:bb","description":"PXE Interface"},{"role":"unknown","name":"PO1","mac_address":null,"description":"LAG interface (no associated MAC record)"}],"operating_system":{"name":"Ubuntu (18.04 x64 LTS)","slug":"ubuntu_18_04_x64_lts","version":"18.04 x64 LTS","features":{"raid":true,"ssh_keys":true},"distro":{"name":"Ubuntu","slug":"ubuntu","series":"bionic"}},"specs":{"cpu":"","disk":"","ram":"","nic":"","gpu":null}}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/server"}}}}}},"patch":{"summary":"Update server","operationId":"update-server","tags":["Servers"],"security":[{"Bearer":[]}],"parameters":[{"name":"server_id","in":"path","required":true,"examples":{"Success":{"value":"sv_yQrJdNAGO30gv"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/update-server"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"sv_yQrJdNAGO30gv","type":"servers","attributes":{"tags":[],"hostname":"Lightweight Wooden Knife","label":"136877NODEKM","price":599.0,"role":"Bare Metal","primary_ipv4":"214.249.69.62","primary_ipv6":"b0c8:139:6f83:7f0c:6e2:33a3:78e4:e03f","status":"unknown","ipmi_status":"Normal","created_at":null,"scheduled_deletion_at":null,"locked":false,"rescue_allowed":false,"region":{"city":"Frankfurt 115","country":"Germany 107","site":{"id":"loc_aNmodjGyqbE8W","name":"Frankfurt 115","slug":"FRA96","facility":"Frankfurt 115","rack_id":"rack_byQrJdNJd30gv"}},"team":{"id":"team_YQZmYB34Nxso86ZgyKj2UEPEnyA","name":"348 Team","slug":"348-team","description":"348 Team","address":"51588 Goodwin Mission, Port Oswaldo, KS 14871-0638","currency":{"id":"cur_GnzRD5xAqM5yw","code":"agd","name":"daznioxpdspfbdbvvikg","currency_id":null},"status":"verified","feature_flags":[],"limits":{"bare_metal":5,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}},"project":{"id":"proj_yQrJdNMGO30gv","name":"Awesome Wool Computer","slug":"awesome-wool-computer","description":"Practical Rubber Shirt","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":1,"storages":0,"virtual_machines":0,"vlans":0}},"plan":{"id":"plan_3YjJOLLyOvZ87","name":"c2.large.arm","slug":"c2-large-arm","billing":"hourly"},"interfaces":[],"operating_system":{},"specs":{"cpu":"","disk":"","ram":"","nic":"","gpu":null}}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/server"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["servers"]},"attributes":{"type":"object","properties":{"hostname":{"type":"string"},"billing":{"type":"string","nullable":true,"description":"The server billing type. Accepts `hourly` and `monthly` for on demand projects and `yearly` for reserved projects.","enum":["hourly","monthly","yearly"]},"tags":{"type":"array","items":{"type":"string"},"nullable":true,"description":"List of Tag IDs"},"project":{"type":"string","description":"Project ID or slug to move the server to"}}}},"example":{"data":{"id":"sv_81EVOtR1N4J2Z","type":"servers","attributes":{"hostname":"new-hostname","tags":[]}}}}}},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"sv_yQrJdNAGO30gv","type":"servers","attributes":{"project":"proj_yQrJdNMGO30gv"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["servers"]},"attributes":{"type":"object","properties":{"hostname":{"type":"string"},"billing":{"type":"string","nullable":true,"description":"The server billing type. Accepts `hourly` and `monthly` for on demand projects and `yearly` for reserved projects.","enum":["hourly","monthly","yearly"]},"tags":{"type":"array","items":{"type":"string"},"nullable":true,"description":"List of Tag IDs"},"project":{"type":"string","description":"Project ID or slug to move the server to"}}}},"example":{"data":{"id":"sv_81EVOtR1N4J2Z","type":"servers","attributes":{"hostname":"new-hostname","tags":[]}}}}}},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"sv_yQrJdNAGO30gv","type":"servers","attributes":{"project":"proj_yQrJdNMGO30gv"}}}}}}},"required":true}},"delete":{"summary":"Remove server","operationId":"destroy-server","tags":["Servers"],"parameters":[{"name":"server_id","in":"path","description":"The server ID","required":true,"schema":{"type":"string"}},{"name":"reason","in":"query","description":"The reason for deleting the server","required":false,"schema":{"type":"string"}}],"security":[{"Bearer":[]}],"x-mint":{"href":"/api-reference/destroy-server"},"responses":{"204":{"description":"No Content"}}}},"/servers/{server_id}/deploy_config":{"get":{"summary":"Retrieve deploy config","operationId":"get-server-deploy-config","tags":["Servers"],"security":[{"Bearer":[]}],"parameters":[{"name":"server_id","in":"path","description":"The Server ID","required":true,"examples":{"Success":{"value":"sv_pRMLydp0dQKr1"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-server-deploy-config"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"sv_pRMLydp0dQKr1","type":"deploy_config","attributes":{"ssh_keys":["ssh_0g1mbDwBqLv5B"],"user_data":"ud_0g1mbDwBqLv5B","raid":"raid-0","operating_system":"debian_10","hostname":"Asoka","ipxe_url":null,"ipxe":null}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/deploy_config"}}}}}},"patch":{"summary":"Update deploy config","operationId":"update-server-deploy-config","tags":["Servers"],"security":[{"Bearer":[]}],"parameters":[{"name":"server_id","in":"path","description":"The Server ID","required":true,"examples":{"Success":{"value":"sv_lkg1DeYLDvZE5"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/update-server-deploy-config"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"sv_lkg1DeYLDvZE5","type":"deploy_config","attributes":{"ssh_keys":["ssh_m5xyZOnNOWM0l"],"user_data":"ud_5LA73qkjdaJ2o","raid":"raid-1","operating_system":"ubuntu_20_04_x64_lts","hostname":"my-hostname","ipxe_url":null,"ipxe":null}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/deploy_config"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","title":"Feature Not Enabled","detail":"Public networks are not enabled for this team","status":"403"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"PublicNetworkNotSupportedForServer":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"cannot be used: the server has 0 cabled bond NICs, but a bond requires exactly 2","status":"422","source":{"pointer":"public_network_id"}}]}},"PublicNetworkHasNoFreeAddresses":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"has no free IP addresses","status":"422","source":{"pointer":"public_network_id"}}]}},"PublicNetworkIdRequiredWhenPublicNetwork":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"is required when public_network is true","status":"422","source":{"pointer":"public_network_id"}}]}},"PublicNetworkRequiredForPublicNetworkId":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"can only be set when public_network is true","status":"422","source":{"pointer":"public_network_id"}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["deploy_config"]},"attributes":{"type":"object","properties":{"hostname":{"type":"string","nullable":true},"operating_system":{"type":"string","enum":["centos_7_4_x64","centos_8_x64","debian_10","debian_11","debian_12","ipxe","rhel8","rockylinux_8","ubuntu22_ml_in_a_box","ubuntu24_ml_in_a_box","ubuntu_20_04_x64_lts","ubuntu_22_04_x64_lts","ubuntu_24_04_x64_lts","windows_2022_std","windows_server_2019_std_v1"],"nullable":true},"raid":{"type":"string","description":"RAID mode for the server. Set to 'raid-0' for RAID 0, 'raid-1' for RAID 1, or omit/null for no RAID configuration","enum":["raid-0","raid-1"],"nullable":true},"disk_layout":{"type":"array","nullable":true,"items":{"type":"object","required":["count","role"],"properties":{"count":{"type":"integer","minimum":1},"role":{"type":"string","enum":["os","storage","raw"]},"raid_level":{"type":"string","enum":["raid-0","raid-1"],"nullable":true},"filesystem":{"type":"string","enum":["ext4"],"nullable":true},"mount_point":{"type":"string","nullable":true}}}},"user_data":{"type":"string","description":"User data to configure the server","nullable":true},"ssh_keys":{"type":"array","items":{"type":"string"},"nullable":true},"ipxe_url":{"type":"string","description":"URL where iPXE script is stored on, necessary for custom image deployments. This attribute is required when operating system iPXE is selected.","nullable":true},"ipxe":{"type":"string","description":"URL where the iPXE script is stored, or the iPXE script encoded in base64. This attribute is required when the iPXE operating system is selected. Replaces the deprecated 'ipxe_url'.","nullable":true},"persistent_netboot":{"type":"boolean","description":"Keep network boot enabled so the server iPXE-boots on every reboot instead of booting from disk. Only supported with the 'ipxe' operating system."},"public_network":{"type":"boolean","nullable":true,"description":"Set to 'true' to attach the server onto a public network. Requires 'public_network_id'. Available only when the public network feature is enabled for the server's location."},"public_network_id":{"type":"string","nullable":true,"description":"ID of a customer public network to attach the server onto. Requires 'public_network' to be 'true'. The public network must belong to the same project and be in the same location as the server, and must have at least one free IP address. This public network configuration is saved to the deploy config and inherited by future reinstalls until changed. Available only when the public network feature is enabled for the server's location."}}}},"required":["type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"type":"deploy_config","attributes":{"ssh_keys":["ssh_m5xyZOnNOWM0l"],"user_data":"ud_5LA73qkjdaJ2o","raid":"raid-1","operating_system":"ubuntu_20_04_x64_lts","hostname":"my-hostname"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["deploy_config"]},"attributes":{"type":"object","properties":{"hostname":{"type":"string","nullable":true},"operating_system":{"type":"string","enum":["centos_7_4_x64","centos_8_x64","debian_10","debian_11","debian_12","ipxe","rhel8","rockylinux_8","ubuntu22_ml_in_a_box","ubuntu24_ml_in_a_box","ubuntu_20_04_x64_lts","ubuntu_22_04_x64_lts","ubuntu_24_04_x64_lts","windows_2022_std","windows_server_2019_std_v1"],"nullable":true},"raid":{"type":"string","description":"RAID mode for the server. Set to 'raid-0' for RAID 0, 'raid-1' for RAID 1, or omit/null for no RAID configuration","enum":["raid-0","raid-1"],"nullable":true},"disk_layout":{"type":"array","nullable":true,"items":{"type":"object","required":["count","role"],"properties":{"count":{"type":"integer","minimum":1},"role":{"type":"string","enum":["os","storage","raw"]},"raid_level":{"type":"string","enum":["raid-0","raid-1"],"nullable":true},"filesystem":{"type":"string","enum":["ext4"],"nullable":true},"mount_point":{"type":"string","nullable":true}}}},"user_data":{"type":"string","description":"User data to configure the server","nullable":true},"ssh_keys":{"type":"array","items":{"type":"string"},"nullable":true},"ipxe_url":{"type":"string","description":"URL where iPXE script is stored on, necessary for custom image deployments. This attribute is required when operating system iPXE is selected.","nullable":true},"ipxe":{"type":"string","description":"URL where the iPXE script is stored, or the iPXE script encoded in base64. This attribute is required when the iPXE operating system is selected. Replaces the deprecated 'ipxe_url'.","nullable":true},"persistent_netboot":{"type":"boolean","description":"Keep network boot enabled so the server iPXE-boots on every reboot instead of booting from disk. Only supported with the 'ipxe' operating system."},"public_network":{"type":"boolean","nullable":true,"description":"Set to 'true' to attach the server onto a public network. Requires 'public_network_id'. Available only when the public network feature is enabled for the server's location."},"public_network_id":{"type":"string","nullable":true,"description":"ID of a customer public network to attach the server onto. Requires 'public_network' to be 'true'. The public network must belong to the same project and be in the same location as the server, and must have at least one free IP address. This public network configuration is saved to the deploy config and inherited by future reinstalls until changed. Available only when the public network feature is enabled for the server's location."}}}},"required":["type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"type":"deploy_config","attributes":{"ssh_keys":["ssh_m5xyZOnNOWM0l"],"user_data":"ud_5LA73qkjdaJ2o","raid":"raid-1","operating_system":"ubuntu_20_04_x64_lts","hostname":"my-hostname"}}}}}}},"required":true}}},"/servers/{server_id}/lock":{"post":{"summary":"Lock server","operationId":"server-lock","tags":["Servers"],"security":[{"Bearer":[]}],"parameters":[{"name":"server_id","in":"path","required":true,"examples":{"Success":{"value":"sv_pbV0DgjKq4AWz"}},"schema":{"type":"string"}}],"description":"Locks the server. A locked server cannot be deleted or modified and no actions can be performed on it.","x-mint":{"href":"/api-reference/server-lock"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"sv_pbV0DgjKq4AWz","type":"servers","attributes":{"hostname":"Heavy Duty Concrete Chair","label":"946654NODEUT","price":599.0,"ipmi_status":"Normal","scheduled_deletion_at":null,"status":"unknown","role":"Enclosure","primary_ipv4":"150.158.19.54","created_at":null,"locked":true,"team":{"id":"team_zAoElw92Z1c36A13Vx9EF71RlMl","name":"467 Team","slug":"467-team","description":"467 Team","address":"Suite 277 939 Hermann Mall, Hongshire, NH 77247-8873","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}},"project":{"id":"proj_Gr47qloZdAg0m","name":"Heavy Duty Linen Bottle","slug":"heavy-duty-linen-bottle","description":"Awesome Copper Lamp","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":"sub_6rq7u7562p9hap","type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":1,"storages":0,"virtual_machines":0,"vlans":0}},"region":{"city":"Frankfurt 132","country":"Germany 147","site":{"id":"loc_Gr47ql4vqAg0m","name":"Frankfurt 132","slug":"FRA113","facility":"Frankfurt 132"}}}}}}},"schema":{"$ref":"#/components/schemas/server"}}}}}}},"/servers/{server_id}/unlock":{"post":{"summary":"Unlock server","operationId":"server-unlock","tags":["Servers"],"security":[{"Bearer":[]}],"parameters":[{"name":"server_id","in":"path","required":true,"examples":{"Success":{"value":"sv_e8pKq0xYqWAob"}},"schema":{"type":"string"}}],"description":"Unlocks the server. A locked server cannot be deleted or modified and no actions can be performed on it.","x-mint":{"href":"/api-reference/server-unlock"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"sv_e8pKq0xYqWAob","type":"servers","attributes":{"hostname":"Fantastic Copper Shirt","label":"275299NODEZB","price":599.0,"ipmi_status":"Normal","scheduled_deletion_at":null,"status":"unknown","role":"Storage","primary_ipv4":"95.231.106.4","created_at":null,"locked":false,"team":{"id":"team_L8E8kyLxxotB4WNL0Pnrhbla8NW","name":"472 Team","slug":"472-team","description":"472 Team","address":"992 Noe Neck, Lake Germanberg, FL 06343","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}},"project":{"id":"proj_aNmodjQZObE8W","name":"Enormous Marble Clock","slug":"enormous-marble-clock","description":"Synergistic Granite Gloves","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":"sub_qmelg7r2lao5z3","type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":1,"storages":0,"virtual_machines":0,"vlans":0}},"region":{"city":"Sydney 134","country":"Australia 149","site":{"id":"loc_kjQwdEmXdYNVP","name":"Sydney 134","slug":"SYD115","facility":"Sydney 134"}}}}}}},"schema":{"$ref":"#/components/schemas/server"}}}}}}},"/servers/{server_id}/out_of_band_connection":{"post":{"summary":"Create out-of-band connection","operationId":"create-server-out-of-band","tags":["Servers"],"security":[{"Bearer":[]}],"parameters":[{"name":"server_id","in":"path","required":true,"examples":{"Created":{"value":"sv_8NkvdyGKDeLpx"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/create-server-out-of-band"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"obc_mw49QDB5qagKb","type":"out_of_band","attributes":{"ssh_key":{"id":"ssh_3YjJOLMydvZ87","description":"wisozk-gislason.example","fingerprint":"14:e2:8e:b3:9e:f5:08:31:b6:c7:43:6d:f5:1e:6d:b2"},"created_at":"2026-01-14T15:56:58+00:00","username":"server-1","credentials":{"user":"donn","password":"398ig362ci"},"port":"2222","access_ip":"189.1.2.0","server_id":"sv_8NkvdyGKDeLpx","status":"connected"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/out_of_band_connection"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["out_of_band"]},"attributes":{"type":"object","properties":{"ssh_key_id":{"type":"string","description":"SSH Key ID to set for out of band"}},"required":["ssh_key_id"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"out_of_band","attributes":{"ssh_key_id":"ssh_3YjJOLMydvZ87"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["out_of_band"]},"attributes":{"type":"object","properties":{"ssh_key_id":{"type":"string","description":"SSH Key ID to set for out of band"}}}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"out_of_band","attributes":{"ssh_key_id":"ssh_3YjJOLMydvZ87"}}}}}}},"required":true}},"get":{"summary":"List out-of-band connections","operationId":"get-server-out-of-band","tags":["Servers"],"security":[{"Bearer":[]}],"parameters":[{"name":"server_id","in":"path","description":"The Server ID","required":true,"examples":{"Success":{"value":"sv_GnzRD5lvqM5yw"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-server-out-of-band"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"obc_AW6Q2D9lqKLpr","type":"out_of_band","attributes":{"ssh_key":{"id":"ssh_Gr47qlNMOAg0m","description":"raynor-dubuque.example","fingerprint":"d5:d6:ac:44:54:1a:d9:c3:0a:1e:c6:2a:9b:66:d5:90"},"created_at":"2026-01-14T15:56:58+00:00","username":"server-1","credentials":{"user":"vonda_littel","password":"8i97d81tjq"},"port":"2222","access_ip":"189.1.2.0","server_id":"sv_GnzRD5lvqM5yw","status":"connected"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/out_of_band_connection"}}}}}}},"/servers/{server_id}/actions":{"post":{"summary":"Run power action","operationId":"create-server-action","tags":["Servers"],"security":[{"Bearer":[]}],"parameters":[{"name":"server_id","in":"path","required":true,"examples":{"Created":{"value":"sv_WVQJDMVBORbyE"}},"schema":{"type":"string"}}],"description":"Performs an action on a given server:\n- `power_on`\n- `power_off`\n- `reboot`\n","x-mint":{"href":"/api-reference/create-server-action"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"act_73qkbw0QmjdaJ","type":"actions","attributes":{"status":"Rebooting device"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/server_action"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["actions"]},"attributes":{"type":"object","properties":{"action":{"type":"string","description":"The action to perform on the server","enum":["power_on","power_off","reboot"]}},"required":["action"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"actions","attributes":{"action":"reboot"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["actions"]},"attributes":{"type":"object","properties":{"action":{"type":"string","description":"The action to perform on the server","enum":["power_on","power_off","reboot"]}},"required":["action"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"actions","attributes":{"action":"reboot"}}}}}}},"required":true}}},"/servers/{server_id}/remote_access":{"post":{"summary":"Create IPMI credentials","operationId":"create-ipmi-session","tags":["Servers"],"security":[{"Bearer":[]}],"parameters":[{"name":"server_id","in":"path","required":true,"examples":{"Created":{"value":"sv_Qkm7dXaRq8nZV"}},"schema":{"type":"string"}}],"description":"Generates IPMI credentials for a given server. Remote access creates a VPN connection to the internal network of your server so you can connect to its IPMI.\nYou will have to use a VPN client such as https://openvpn.net to connect. See `VPN Sessions` API to create a VPN connection.\n\nRelated guide: https://docs.latitude.sh/docs/ipmi\n","x-mint":{"href":"/api-reference/create-ipmi-session"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"ipmi_mw49QDB5qagKb","type":"ipmi_sessions","attributes":{"ipmi_address":"10.0.10.1","ipmi_url":null,"ipmi_username":"customer_access","ipmi_password":"ipmi_password"}}}}},"schema":{"$ref":"#/components/schemas/ipmi_session"}}}}}}},"/servers/{server_id}/rescue_mode":{"post":{"summary":"Put server in rescue mode","operationId":"server-start-rescue-mode","tags":["Servers"],"security":[{"Bearer":[]}],"parameters":[{"name":"server_id","in":"path","required":true,"examples":{"Created":{"value":"sv_WeGoqAWNOP7nz"}},"schema":{"type":"string"}}],"description":"Starts rescue mode on a given server.","x-mint":{"href":"/api-reference/server-start-rescue-mode"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"meta":{}}}},"schema":{"$ref":"#/components/schemas/server_rescue"}}}}}}},"/servers/{server_id}/exit_rescue_mode":{"post":{"summary":"Exits rescue mode","operationId":"server-exit-rescue-mode","tags":["Servers"],"security":[{"Bearer":[]}],"parameters":[{"name":"server_id","in":"path","required":true,"examples":{"Success":{"value":"sv_3YjJOLQNdvZ87"}},"schema":{"type":"string"}}],"description":"Exits rescue mode on a given server.","x-mint":{"href":"/api-reference/server-exit-rescue-mode"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"meta":{}}}},"schema":{"$ref":"#/components/schemas/server_rescue"}}}}}}},"/servers/{server_id}/schedule_deletion":{"post":{"summary":"Schedule server deletion","operationId":"server-schedule-deletion","tags":["Servers"],"security":[{"Bearer":[]}],"parameters":[{"name":"server_id","in":"path","required":true,"examples":{"Created":{"value":"sv_g1mbDwBZqLv5B"}},"schema":{"type":"string"}}],"description":"Schedules the server to be removed at the end of the billing cycle.","x-mint":{"href":"/api-reference/server-schedule-deletion"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"sv_g1mbDwBZqLv5B","type":"schedule_deletion","attributes":{"server_id":"sv_g1mbDwBZqLv5B","scheduled_deletion_at":"2026-02-14T09:57:01Z"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/server_schedule_deletion"}}}}}},"delete":{"summary":"Unschedule server deletion","operationId":"server-unschedule-deletion","tags":["Servers"],"security":[{"Bearer":[]}],"parameters":[{"name":"server_id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Unschedules the server removal at the end of the billing cycle.","x-mint":{"href":"/api-reference/server-unschedule-deletion"},"responses":{"204":{"description":"No Content"}}}},"/servers/{server_id}/reinstall":{"post":{"summary":"Run Server Reinstall","operationId":"create-server-reinstall","tags":["Servers"],"security":[{"Bearer":[]}],"parameters":[{"name":"server_id","in":"path","required":true,"examples":{"Created":{"value":"sv_aNmodj6ydbE8W"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/create-server-reinstall"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","title":"Feature Not Enabled","detail":"Public networks are not enabled for this team","status":"403"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"ServerNotFound":{"value":{"errors":[{"code":"REINSTALL_SERVER_NOT_FOUND","title":"Reinstall Server Not Found","detail":"Sorry, we're unable to reinstall","status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ReinstallUnavailable":{"value":{"errors":[{"code":"REINSTALL_UNAVAILABLE","title":"Reinstall Unavailable","detail":"Your server has outdated hardware information and is unable to reinstall. Please contact support for assistance.","status":"422"}]}},"ServerBeingProvisioned":{"value":{"errors":[{"code":"SERVER_BEING_PROVISIONED","title":"Unable to reinstall","detail":"Server is being provisioned","status":"422"}]}},"ServerInRescueMode":{"value":{"errors":[{"code":"SERVER_IN_RESCUE_MODE","title":"Server in Rescue Mode","detail":"Server is in rescue mode and cannot be reinstalled","status":"422"}]}},"NetworkConfigError":{"value":{"errors":[{"code":"NETWORK_CONFIG_ERROR","title":"Network Config Error","detail":"Failed to reinstall due to invalid network config on the server.","status":"422"}]}},"ReinstallServerFailure":{"value":{"errors":[{"code":"REINSTALL_SERVER_FAILURE","title":"Reinstall Server Failure","detail":"Failed to reinstall server","status":"422"}]}},"PublicNetworkNotSupported":{"value":{"errors":[{"code":"PUBLIC_NETWORK_NOT_SUPPORTED","title":"Public network not supported","detail":"Attaching a public network is not supported for this server","status":"422"}]}},"PublicNetworkHasNoFreeAddresses":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"has no free IP addresses","status":"422","source":{"pointer":"public_network_id"}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["reinstalls"]},"attributes":{"type":"object","properties":{"operating_system":{"type":"string","description":"The OS selected for the reinstall process","enum":["centos_7_4_x64","centos_8_x64","debian_10","debian_11","debian_12","ipxe","rhel8","rockylinux_8","ubuntu22_ml_in_a_box","ubuntu24_ml_in_a_box","ubuntu_20_04_x64_lts","ubuntu_22_04_x64_lts","ubuntu_24_04_x64_lts","windows_2022_std","windows_server_2019_std_v1"]},"hostname":{"type":"string","description":"The server hostname to set upon reinstall"},"ssh_keys":{"type":"array","description":"SSH Key IDs to set upon reinstall","items":{"type":"string"},"nullable":true},"user_data":{"type":"string","description":"User data ID to set upon reinstall","nullable":true},"raid":{"type":"string","description":"RAID mode for the server. Set to 'raid-0' for RAID 0, 'raid-1' for RAID 1, or omit/null for no RAID configuration","enum":["raid-0","raid-1"],"nullable":true},"disk_layout":{"type":"array","nullable":true,"items":{"type":"object","required":["count","role"],"properties":{"count":{"type":"integer","minimum":1},"role":{"type":"string","enum":["os","storage","raw"]},"raid_level":{"type":"string","enum":["raid-0","raid-1"],"nullable":true},"filesystem":{"type":"string","enum":["ext4","xfs"],"nullable":true},"mount_point":{"type":"string","nullable":true}}}},"ipxe":{"type":"string","description":"URL where iPXE script is stored on, OR the iPXE script encoded in base64. This attribute is required when operating system iPXE is selected.","nullable":true},"persistent_netboot":{"type":"boolean","description":"Keep network boot enabled so the server iPXE-boots on every reboot instead of booting from disk. Only supported with the 'ipxe' operating system."},"public_network":{"type":"boolean","nullable":true,"description":"**Preview.** Available to teams with public networks enabled. Set to 'true' to attach the server onto the given 'public_network_id', or 'false' to detach an existing public network, during the reinstall. Requires 'public_network_id' when attaching."},"public_network_id":{"type":"string","nullable":true,"description":"ID of a customer public network to attach this server to during the reinstall. The public network must belong to the same project and be in the same location as the server, and must have at least one free IP address. Applies to this reinstall only; omit it to leave any existing public network unchanged."}}}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"reinstalls","attributes":{"operating_system":"ipxe","ipxe":"https://some-host.com/image.ipxe","hostname":"BRC1"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["reinstalls"]},"attributes":{"type":"object","properties":{"operating_system":{"type":"string","description":"The OS selected for the reinstall process","enum":["centos_7_4_x64","centos_8_x64","debian_10","debian_11","debian_12","ipxe","rhel8","rockylinux_8","ubuntu22_ml_in_a_box","ubuntu24_ml_in_a_box","ubuntu_20_04_x64_lts","ubuntu_22_04_x64_lts","ubuntu_24_04_x64_lts","windows_2022_std","windows_server_2019_std_v1"]},"hostname":{"type":"string","description":"The server hostname to set upon reinstall"},"ssh_keys":{"type":"array","description":"SSH Key IDs to set upon reinstall","items":{"type":"string"},"nullable":true},"user_data":{"type":"string","description":"User data ID to set upon reinstall","nullable":true},"raid":{"type":"string","description":"RAID mode for the server. Set to 'raid-0' for RAID 0, 'raid-1' for RAID 1, or omit/null for no RAID configuration","enum":["raid-0","raid-1"],"nullable":true},"disk_layout":{"type":"array","nullable":true,"items":{"type":"object","required":["count","role"],"properties":{"count":{"type":"integer","minimum":1},"role":{"type":"string","enum":["os","storage","raw"]},"raid_level":{"type":"string","enum":["raid-0","raid-1"],"nullable":true},"filesystem":{"type":"string","enum":["ext4","xfs"],"nullable":true},"mount_point":{"type":"string","nullable":true}}}},"ipxe":{"type":"string","description":"URL where iPXE script is stored on, OR the iPXE script encoded in base64. This attribute is required when operating system iPXE is selected.","nullable":true},"persistent_netboot":{"type":"boolean","description":"Keep network boot enabled so the server iPXE-boots on every reboot instead of booting from disk. Only supported with the 'ipxe' operating system."},"public_network":{"type":"boolean","nullable":true,"description":"**Preview.** Available to teams with public networks enabled. Set to 'true' to attach the server onto the given 'public_network_id', or 'false' to detach an existing public network, during the reinstall. Requires 'public_network_id' when attaching."},"public_network_id":{"type":"string","nullable":true,"description":"ID of a customer public network to attach this server to during the reinstall. The public network must belong to the same project and be in the same location as the server, and must have at least one free IP address. Applies to this reinstall only; omit it to leave any existing public network unchanged."}}}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"reinstalls","attributes":{"operating_system":"ipxe","ipxe":"https://some-host.com/image.ipxe","hostname":"BRC1"}}}}}}},"required":true}}},"/ssh_keys":{"get":{"summary":"List SSH Keys","operationId":"get-ssh-keys","tags":["SSH Keys"],"security":[{"Bearer":[]}],"parameters":[{"name":"filter[project]","in":"query","required":false,"description":"Project ID or slug","schema":{"type":"string"}},{"name":"filter[scope]","in":"query","required":false,"description":"Filter by scope: `project` (has projects), `team` (no projects), or empty (all)","schema":{"type":"string"}},{"name":"filter[tags]","in":"query","required":false,"description":"The tags ids to filter by, separated by comma, e.g. `filter[tags]=tag_1,tag_2`will return ssh keys with `tag_1` AND `tag_2`","examples":{"Success":{"value":"tag_A06EMPEmKXhKBNKgWrv0CRZMN5a,tag_P7xlGZzYNZF4w3YXRrYMU7AjQEAX"}},"schema":{"type":"string"}},{"name":"stats[total]","in":"query","required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`.","schema":{"type":"string"}},{"name":"page[number]","in":"query","required":false,"description":"Page number for pagination","schema":{"type":"integer"}},{"name":"page[size]","in":"query","required":false,"description":"Number of items per page","schema":{"type":"integer"}}],"description":"List all SSH Keys in the project. These keys can be used to access servers after deploy and reinstall actions.\n","x-mint":{"href":"/api-reference/get-ssh-keys"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"ssh_VE1Wd3L7qXnZJ","type":"ssh_keys","attributes":{"tags":[],"name":"quigley-hudson.example","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuDo1r0gQTdX/8l4Ko7ZAYJLimzA1+eom99SFnMKwZmGVubhsnvQ8sCJAqjn1gO66+RrDwrWb+iqM7vlQlodiMr9VTOCxDke9MhW5peRP94vKyptquzJW8J+Y3qNcM774bOrQXpQMo92i5d4ffPYmEoifxVYEhmZrM2Yxr3zqLW0cs446RvCDRLTyGAhte6F9i1Qz95U4WqVkJ9Y5A/cSwJ1W17lK+e8ZMpjkrZXUL0gYGylM7BJRf+R6XOnXAdBEW1Dr8QN+s8ai4m5Y0htwPqTfL5/rGiVrES+QnDUJDe5mtpa3v51geAzgXTFtw3JCGpGyUbv0kITvFJBwNMvUz","fingerprint":"a5:3b:97:0c:b5:2a:a1:6d:e4:93:2f:9d:5f:a6:0e:28","created_at":"2026-01-14T15:57:04+00:00","updated_at":"2026-01-14T15:57:04+00:00","project":{},"user":{"id":"user_Xjm6jLAYleIy8YRwoMyLCBbXypG","first_name":"Lashawna","last_name":"Wuckert","email":"shawnee_runolfsdottir@olson-gulgowski.test","created_at":"2025-10-16T00:00:00.000Z","updated_at":"2025-04-04T00:00:00.000Z","role":{"id":"role_5QB3mJAbazs5MbgR5RkLFro6YVY","name":"owner","created_at":"2025-12-23T00:00:00.000Z","updated_at":"2026-11-24T00:00:00.000Z"}}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/ssh_keys"}}}}}},"post":{"summary":"Create SSH Key","operationId":"post-ssh-key","tags":["SSH Keys"],"security":[{"Bearer":[]}],"parameters":[],"description":"Allows you create SSH Keys. These keys can be used to access servers after deploy and reinstall actions.\n","x-mint":{"href":"/api-reference/post-ssh-key"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"ssh_QraYDPweqpjwW","type":"ssh_keys","attributes":{"tags":[],"name":"SSH Key","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOLFnjGP3Jsh1usHNS2EILgfqZNC9pOvNqBZqxH+qNAdZdQCzy2csMuiq+ZwLA8Mm4Vo5CvSgBHs/kuZRUKyTl+79YUMZIj8PhHzL4XbdqX1ZnAIklHWcJaveB0+UXLEPKGzFIFq+FkuwtiXQsVe5NnSpIDYgpzhqEs38NsnXvsubKphGUdARDhaxvMdUUl4YsAtLHKMzSyIvE6xwfTtIVwA9bZt/8GoBzrn9px9PEcf25Rgd2NhOYs3WYcZuwvRmfcFdi2vGhVqTPqL9n16R/n5jknxHYrTyqWNxJdpdvg2YqXpN7vnFNoOjYFD6EahJ0pF/+WL4tPCIkLfoaVaSx","fingerprint":"0a:00:34:53:51:0e:a5:4e:06:2c:d7:16:88:96:82:f3","created_at":"2026-01-14T15:57:05+00:00","updated_at":"2026-01-14T15:57:05+00:00","project":{"id":"proj_z2A3DV4wdnawP","name":"Ergonomic Cotton Gloves","slug":"ergonomic-cotton-gloves","description":"Small Concrete Bottle","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}},"user":{"id":"user_RJK9eae5KlTAKQoBReVKFGQRVJ7","first_name":"Meda","last_name":"Schowalter","email":"dana.lind@mayert-kreiger.test","created_at":"2025-04-25T00:00:00.000Z","updated_at":"2025-07-21T00:00:00.000Z","role":{"id":"role_AzG5AagWN1fKg1okmoG9uWWoN5my","name":"owner","created_at":"2025-05-15T00:00:00.000Z","updated_at":"2026-12-02T00:00:00.000Z"}}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ssh_key_data"}}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["ssh_keys"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the SSH Key"},"project":{"type":"string","description":"Project ID or slug"},"public_key":{"type":"string","description":"SSH Public Key"}},"required":["name","public_key"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"ssh_keys","attributes":{"name":"SSH Key","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOLFnjGP3Jsh1usHNS2EILgfqZNC9pOvNqBZqxH+qNAdZdQCzy2csMuiq+ZwLA8Mm4Vo5CvSgBHs/kuZRUKyTl+79YUMZIj8PhHzL4XbdqX1ZnAIklHWcJaveB0+UXLEPKGzFIFq+FkuwtiXQsVe5NnSpIDYgpzhqEs38NsnXvsubKphGUdARDhaxvMdUUl4YsAtLHKMzSyIvE6xwfTtIVwA9bZt/8GoBzrn9px9PEcf25Rgd2NhOYs3WYcZuwvRmfcFdi2vGhVqTPqL9n16R/n5jknxHYrTyqWNxJdpdvg2YqXpN7vnFNoOjYFD6EahJ0pF/+WL4tPCIkLfoaVaSx","project":"proj_z2A3DV4wdnawP"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["ssh_keys"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the SSH Key"},"project":{"type":"string","description":"Project ID or slug"},"public_key":{"type":"string","description":"SSH Public Key"}}}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"ssh_keys","attributes":{"name":"SSH Key","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOLFnjGP3Jsh1usHNS2EILgfqZNC9pOvNqBZqxH+qNAdZdQCzy2csMuiq+ZwLA8Mm4Vo5CvSgBHs/kuZRUKyTl+79YUMZIj8PhHzL4XbdqX1ZnAIklHWcJaveB0+UXLEPKGzFIFq+FkuwtiXQsVe5NnSpIDYgpzhqEs38NsnXvsubKphGUdARDhaxvMdUUl4YsAtLHKMzSyIvE6xwfTtIVwA9bZt/8GoBzrn9px9PEcf25Rgd2NhOYs3WYcZuwvRmfcFdi2vGhVqTPqL9n16R/n5jknxHYrTyqWNxJdpdvg2YqXpN7vnFNoOjYFD6EahJ0pF/+WL4tPCIkLfoaVaSx","project":"proj_z2A3DV4wdnawP"}}}}}}},"required":true}}},"/ssh_keys/{ssh_key_id}":{"get":{"summary":"Retrieve SSH Key","operationId":"get-ssh-key","tags":["SSH Keys"],"security":[{"Bearer":[]}],"parameters":[{"name":"ssh_key_id","in":"path","required":true,"examples":{"Success":{"value":"ssh_LYV8DZ12q5QoE"}},"schema":{"type":"string"}}],"description":"List all SSH Keys in the project. These keys can be used to access servers after deploy and reinstall actions.\n","x-mint":{"href":"/api-reference/get-ssh-key"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"ssh_LYV8DZ12q5QoE","type":"ssh_keys","attributes":{"tags":[],"name":"okon.test","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDbsRT5a6prybLLxm/7kojvMNCCQ2UIM9/7UaxhOWYM8om+3IwB1EMQEyiNrIJtmJ7OYUz1mb5cd2Ra0nl0GztBFbMiqsXOFj+yiAYXEObciMNg65QxUNIe3goOJBwXdhRp/n3uRk8VePSETMTtjfVMgAiY2/LLqLgpN0eYBaZN+E7/Z3VHjh53krElLex0oJaCfIrHYb4GvtdmbZiwUpqGOlg41/cMxyEV2E/KHHhQOHm1/xCCzPlTNsf26O+oiJCRuzFaYUctrr7XC/kN1H9oH2nYNKZmZHKLKKFOdhXAf7IzI6tagL4CHInysYWaMdJ8lyHGY9+wKeSrtQQmgNoR","fingerprint":"c8:8d:f7:d8:5d:4c:fe:d4:09:85:4f:04:91:e4:0e:9c","created_at":"2026-01-14T15:57:05+00:00","updated_at":"2026-01-14T15:57:05+00:00","project":{},"user":{"id":"user_0A9pmoYAB8Uy5bJ6EmLVI0nKkaa","first_name":"Jonelle","last_name":"Grady","email":"irina.miller@reilly.example","created_at":"2025-04-29T00:00:00.000Z","updated_at":"2025-06-08T00:00:00.000Z","role":{"id":"role_1KvABgXK63IKBM79NjvwU55yXNoW","name":"owner","created_at":"2025-02-28T00:00:00.000Z","updated_at":"2026-12-25T00:00:00.000Z"}}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ssh_key_data"}}}}}}}},"patch":{"summary":"Update SSH Key","operationId":"put-ssh-key","tags":["SSH Keys"],"security":[{"Bearer":[]}],"parameters":[{"name":"ssh_key_id","in":"path","required":true,"examples":{"Success":{"value":"ssh_GnzRD5xAqM5yw"}},"schema":{"type":"string"}}],"description":"Allows you update SSH Key in a project. These keys can be used to access servers after deploy and reinstall actions.\n","x-mint":{"href":"/api-reference/put-ssh-key"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"ssh_GnzRD5xAqM5yw","type":"ssh_keys","attributes":{"tags":[{"id":"tag_JLA906BzyKHLyVJbJr8NH3QQbev","name":"Elfstan Fairbairn","description":"Culpa fuga asperiores et.","color":"#3fd53f"},{"id":"tag_Yy7PJ68y22FoQyBppnW7FjNGX1k","name":"Lindir","description":"Et voluptas sequi rerum.","color":"#172717"}],"name":"bradtke.example","public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCZzuE/2myrBWwvs5ayKE/p37nbhUWBpVfKjFA/6meaIFj3pKHv7lK3rZxOz/QnrUPsTS04kXVwvOG1Ms+ZQk7irHNzSWksKIFK8mPZWf9T6Pb2DbUduela1jUnmelVKPoiF6lUVnA8IayHbeRD5kaGS1zr35WzstNhUPXoab6QI9NSakvxUxciGitJ/nMWSJlfV3y48OQ1NE9iuqoSWomWc8/NEjk5x2uJcte2ZA336hjYHQxo9+DYhLq9jRcxw3RrzqkWFDuVT4SW82x5ERIZYUKZmywOwk8gCePNaUkzRU4G6qwADfpBovbicZ4+9WBpZsJ7vj8OqM35TdFS7ZjJ","fingerprint":"52:c8:05:f4:9b:f0:42:17:40:07:64:0d:33:12:9a:47","created_at":"2026-01-14T15:57:06+00:00","updated_at":"2026-01-14T15:57:06+00:00","project":{},"user":{"id":"user_yReEYZlaagFl4YmjMZ6GCpvwJJJb","first_name":"Gale","last_name":"Brown","email":"willa.wunsch@veum.example","created_at":"2025-02-17T00:00:00.000Z","updated_at":"2025-05-31T00:00:00.000Z","role":{"id":"role_bBeWeR8mBLuyLVoQwzNWcng2ekv","name":"owner","created_at":"2025-11-16T00:00:00.000Z","updated_at":"2026-06-05T00:00:00.000Z"}}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ssh_key_data"}}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["ssh_keys"]},"attributes":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"}},"name":{"type":"string","description":"Name of the SSH Key"}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"ssh_GnzRD5xAqM5yw","type":"ssh_keys","attributes":{"tags":["tag_JLA906BzyKHLyVJbJr8NH3QQbev","tag_Yy7PJ68y22FoQyBppnW7FjNGX1k"]}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["ssh_keys"]},"attributes":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"}},"name":{"type":"string","description":"Name of the SSH Key"}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"ssh_GnzRD5xAqM5yw","type":"ssh_keys","attributes":{"tags":["tag_JLA906BzyKHLyVJbJr8NH3QQbev","tag_Yy7PJ68y22FoQyBppnW7FjNGX1k"]}}}}}}},"required":true}},"delete":{"summary":"Delete SSH Key","operationId":"delete-ssh-key","tags":["SSH Keys"],"security":[{"Bearer":[]}],"parameters":[{"name":"ssh_key_id","in":"path","required":true,"examples":{"Success":{"value":"ssh_KXgRdRa3Ov9k5"}},"schema":{"type":"string"}}],"description":"Allows you remove SSH Keys in a project. Remove a SSH Key from the project won't revoke the SSH Keys access for previously deploy and reinstall actions.\n","x-mint":{"href":"/api-reference/delete-ssh-key"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"meta":{}}}}}}}}}},"/storage/filesystems":{"post":{"summary":"Create filesystem","operationId":"post-storage-filesystems","tags":["Filesystem Storage"],"security":[{"Bearer":[]}],"parameters":[],"description":"Allows you to add persistent storage to a project. These filesystems can be used to store data across your servers.","x-mint":{"href":"/api-reference/post-storage-filesystems"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"fs_AW6Q2D9lqKLpr","type":"filesystems","attributes":{"name":"my-data","size_in_gb":1500,"created_at":"2026-01-14T15:57:07.000Z","project":{"id":"proj_lkg1De6ROvZE5","name":"Small Leather Plate","slug":"small-leather-plate","description":"Awesome Marble Table","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_13ljzVvQY2c2YN4lnMexSm79WgA","name":"592 Team","slug":"592-team","description":"592 Team","address":"247 Russ Station, New Freddy, OK 97400-4162","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/filesystem_data"}}}}}},"503":{"description":"Service Unavailable - Storage creation temporarily frozen","content":{"application/vnd.api+json":{"examples":{"Storage creation frozen":{"value":{"errors":[{"code":"STORAGE_CREATION_FROZEN","status":"503","title":"Storage creation frozen","detail":"New filesystem creation is temporarily unavailable.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["filesystems"]},"attributes":{"type":"object","properties":{"project":{"type":"string","description":"Project ID or slug"},"name":{"type":"string","description":"Filesystem name"},"size_in_gb":{"type":"integer","default":1500,"minimum":1,"maximum":10000,"description":"Size in GB (not required, default is 1500)"}},"required":["project","name"]}},"required":["type","attributes"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"filesystems","attributes":{"name":"my-data","size_in_gb":1500,"project":"proj_lkg1De6ROvZE5"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["filesystems"]},"attributes":{"type":"object","properties":{"project":{"type":"string","description":"Project ID or slug"},"name":{"type":"string","description":"Filesystem name"},"size_in_gb":{"type":"integer","default":1500,"minimum":1,"maximum":10000,"description":"Size in GB (not required, default is 1500)"}},"required":["project","name"]}},"required":["type","attributes"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"filesystems","attributes":{"name":"my-data","size_in_gb":1500,"project":"proj_lkg1De6ROvZE5"}}}}}}},"required":true}},"get":{"summary":"List filesystems","operationId":"get-storage-filesystems","tags":["Filesystem Storage"],"security":[{"Bearer":[]}],"description":"Lists all the filesystems from a team.","parameters":[{"name":"filter[project]","in":"query","required":false,"description":"The project ID or Slug to filter by","examples":{"Success":{"value":"small-rubber-shirt"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-storage-filesystems"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/filesystems"},"examples":{"Success":{"value":{"data":[{"id":"fs_6059EqYkOQj8p","type":"filesystems","attributes":{"name":"Intelligent Bronze Bench","size_in_gb":1500,"created_at":"2026-01-14T15:57:07.743Z","project":{"id":"proj_695BdKNeOevVo","name":"Synergistic Bronze Wallet","slug":"synergistic-bronze-wallet","description":"Mediocre Bronze Computer","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_lV9Xe2AAK5CbMgGbpPYLskLRXyV","name":"601 Team","slug":"601-team","description":"601 Team","address":"20590 Deckow Divide, Lake Boris, NC 87947","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}},{"id":"fs_6VE1Wd37dXnZJ","type":"filesystems","attributes":{"name":"Gorgeous Rubber Bench","size_in_gb":1500,"created_at":"2026-01-14T15:57:07.758Z","project":{"id":"proj_yQrJdNm5O30gv","name":"Heavy Duty Copper Clock","slug":"heavy-duty-copper-clock","description":"Small Aluminum Shoes","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_lV9Xe2AAK5CbMgGbpPYLskLRXyV","name":"601 Team","slug":"601-team","description":"601 Team","address":"20590 Deckow Divide, Lake Boris, NC 87947","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}]}}}}}}}}},"/storage/filesystems/{filesystem_id}":{"delete":{"summary":"Delete filesystem","operationId":"delete-storage-filesystems","tags":["Filesystem Storage"],"security":[{"Bearer":[]}],"parameters":[{"name":"filesystem_id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Allows you to remove a filesystem from a project.","x-mint":{"href":"/api-reference/delete-storage-filesystems"},"responses":{"204":{"description":"No Content"}}},"patch":{"summary":"Update filesystem","operationId":"patch-storage-filesystems","tags":["Filesystem Storage"],"security":[{"Bearer":[]}],"parameters":[{"name":"filesystem_id","in":"path","required":true,"examples":{"Success":{"value":"fs_7vYAZqGBdMQ94"}},"schema":{"type":"string"}}],"description":"Allow you to upgrade the size of a filesystem.","x-mint":{"href":"/api-reference/patch-storage-filesystems"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"fs_7vYAZqGBdMQ94","type":"filesystems","attributes":{"name":"Lightweight Aluminum Computer","size_in_gb":1501,"created_at":"2026-01-14T15:57:08.000Z","project":{"id":"proj_1R3zq2VvqWxyn","name":"Enormous Iron Plate","slug":"enormous-iron-plate","description":"Durable Wooden Shoes","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_6RZQo811RrT97mgazl8wf1Ryxxo","name":"606 Team","slug":"606-team","description":"606 Team","address":"Apt. 122 58068 Bibi Prairie, Ardithport, NH 77015-2685","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/filesystem_data"}}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","description":"Filesystem ID"},"type":{"type":"string","enum":["filesystems"]},"attributes":{"type":"object","properties":{"size_in_gb":{"type":"integer","minimum":1,"maximum":10000,"description":"Size in GB (not required, default is 1500)"}},"required":["size_in_gb"]}},"required":["type","attributes","id"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"fs_7vYAZqGBdMQ94","type":"filesystems","attributes":{"size_in_gb":1501}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","description":"Filesystem ID"},"type":{"type":"string","enum":["filesystems"]},"attributes":{"type":"object","properties":{"size_in_gb":{"type":"integer","minimum":1,"maximum":10000,"description":"Size in GB (not required, default is 1500)"}},"required":["size_in_gb"]}},"required":["type","attributes","id"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"fs_7vYAZqGBdMQ94","type":"filesystems","attributes":{"size_in_gb":1501}}}}}}},"required":true}}},"/storage/volumes":{"post":{"summary":"Create volume","operationId":"post-storage-volumes","tags":["Block Storage"],"security":[{"Bearer":[]}],"parameters":[],"description":"Allows you to add persistent storage to a project. These volumes can be used to store data across your servers.","x-mint":{"href":"/api-reference/post-storage-volumes"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"vol_Av9BVDavORm1W","type":"volumes","attributes":{"name":"Rustic Aluminum Shoes","size_in_gb":1500,"created_at":"2026-01-14T15:57:08.000Z","namespace_id":null,"connector_id":null,"initiators":null,"project":{"id":"proj_enPbqoZ6dA2MQ","name":"Mediocre Aluminum Car","slug":"mediocre-aluminum-car","description":"Rustic Linen Shoes","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_geEQyBL2bJiVpXJgmw1YTgneKVb","name":"609 Team","slug":"609-team","description":"609 Team","address":"Apt. 590 415 Kirlin Pass, South Trenton, MT 96944","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/volume_data"}}}}}},"503":{"description":"Service Unavailable - Storage creation temporarily frozen","content":{"application/vnd.api+json":{"examples":{"Storage creation frozen":{"value":{"errors":[{"code":"STORAGE_CREATION_FROZEN","status":"503","title":"Storage creation frozen","detail":"New volume creation is temporarily unavailable.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["volumes"]},"attributes":{"type":"object","properties":{"project":{"type":"string","description":"Project ID or slug"},"name":{"type":"string","description":"Volume name"},"region":{"type":"string","description":"Region (site) slug where the volume is provisioned"},"size_in_gb":{"type":"integer","minimum":1,"maximum":10000,"description":"Size in GB"}},"required":["project","name","region","size_in_gb"]}},"required":["type","attributes"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"volumes","attributes":{"name":"my-data","size_in_gb":1500,"region":"DAL","project":"proj_enPbqoZ6dA2MQ"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["volumes"]},"attributes":{"type":"object","properties":{"project":{"type":"string","description":"Project ID or slug"},"name":{"type":"string","description":"Volume name"},"region":{"type":"string","description":"Region (site) slug where the volume is provisioned"},"size_in_gb":{"type":"integer","minimum":1,"maximum":10000,"description":"Size in GB"}},"required":["project","name","region","size_in_gb"]}},"required":["type","attributes"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"volumes","attributes":{"name":"my-data","size_in_gb":1500,"region":"DAL","project":"proj_enPbqoZ6dA2MQ"}}}}}}},"required":true}},"get":{"summary":"List volumes","operationId":"get-storage-volumes","tags":["Block Storage"],"security":[{"Bearer":[]}],"description":"Lists all the volumes from a team.","parameters":[{"name":"filter[project]","in":"query","required":false,"description":"The project ID or Slug to filter by","examples":{"Success":{"value":"proj_WeGoqA5AqP7nz"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-storage-volumes"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"vol_RLYV8DZ2D5QoE","type":"volumes","attributes":{"name":"Incredible Paper Computer","size_in_gb":1500,"created_at":"2026-01-14T14:57:08.628Z","namespace_id":"1","connector_id":"nqn.2001-07.com.latitudesh:1757602476548","initiators":[{"nqn":"nqn.2014-08.org.nvmexpress:uuid:ae717767-c0fa-56f7-ab4b-5c426b0c553f"}],"region":{"city":"London 1","country":"United Kingdom 1","site":{"id":"loc_ROlWJ8XlqNkzr","name":"London 1","slug":"LON","facility":"London 1"}},"project":{"id":"proj_WeGoqA5AqP7nz","name":"Gorgeous Concrete Clock","slug":"gorgeous-concrete-clock","description":"Small Wooden Shirt","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_nYRYZR4lwzSJpMxzmrnKSe8P79E","name":"614 Team","slug":"614-team","description":"614 Team","address":"Suite 444 21815 Angel Falls, North Jarvis, LA 68902","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}]}}},"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/volume_data"}}}}}}}}}},"/storage/volumes/{id}":{"delete":{"summary":"Delete volume","operationId":"delete-storage-volumes","tags":["Block Storage"],"security":[{"Bearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Allows you to remove a volume from a project.","x-mint":{"href":"/api-reference/delete-storage-volumes"},"responses":{"204":{"description":"No Content"}}},"get":{"summary":"Retrieve volume","operationId":"get-storage-volume","tags":["Block Storage"],"security":[{"Bearer":[]}],"description":"Shows details of a specific volume.","parameters":[{"name":"id","in":"path","required":true,"description":"The volume ID","examples":{"Success":{"value":"vol_aKXgRdR3qv9k5"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-storage-volume"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"vol_aKXgRdR3qv9k5","type":"volumes","attributes":{"name":"Synergistic Concrete Shoes","size_in_gb":1500,"created_at":"2026-01-14T14:57:09.251Z","namespace_id":"1","connector_id":"nqn.2001-07.com.latitudesh:1757602476548","initiators":[{"nqn":"nqn.2014-08.org.nvmexpress:uuid:ae717767-c0fa-56f7-ab4b-5c426b0c553f"}],"region":{"city":"London 1","country":"United Kingdom 1","site":{"id":"loc_ROlWJ8XlqNkzr","name":"London 1","slug":"LON","facility":"London 1"}},"project":{"id":"proj_5AEmq7XyDBkWX","name":"Sleek Wool Computer","slug":"sleek-wool-computer","description":"Awesome Marble Wallet","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_2KyxrrLkeRtKVLNKv5yNhMWXPnyw","name":"623 Team","slug":"623-team","description":"623 Team","address":"Apt. 955 6672 Otto Mountain, Phillipfurt, CA 84225","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/volume_data"}}}}}}}}},"/storage/volumes/{id}/mount":{"post":{"summary":"Mount volume","operationId":"post-storage-volumes-mount","tags":["Block Storage"],"security":[{"Bearer":[]}],"description":"Mounts a volume by adding the client to an allowed list","parameters":[{"name":"id","in":"path","required":true,"description":"Volume ID","schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/post-storage-volumes-mount"},"responses":{"204":{"description":"No Content"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["volumes"]},"attributes":{"type":"object","properties":{"nqn":{"type":"string","description":"NVMe Qualified Name (NQN) of the client/server that will access the volume. Format: nqn.YYYY-MM.domain:identifier (e.g., \"nqn.2024-01.com.example:server01\"). This uniquely identifies the NVMe client and must be configured on the client server.","example":"nqn.2024-01.com.example:server01"}},"required":["nqn"]}},"required":["type","attributes"]}},"required":["data"]}}},"required":true}}},"/storage/volumes/{id}/map":{"post":{"summary":"Map volume to server","operationId":"post-storage-volumes-map","tags":["Block Storage"],"security":[{"Bearer":[]}],"description":"Maps a high performance volume to a server over NVMe-TCP.","parameters":[{"name":"id","in":"path","required":true,"description":"Volume ID","schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/post-storage-volumes-map"},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/volume_data"},"meta":{"type":"object"}}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["volumes"]},"attributes":{"type":"object","properties":{"server_id":{"type":"string","description":"ID of the server that will access the volume. The server must belong to the same project and location as the volume, and must be eligible for bonding.","example":"sv_abcd1234"}},"required":["server_id"]}},"required":["type","attributes"]}},"required":["data"]}}},"required":true}}},"/storage/access_keys":{"post":{"summary":"Create access key","operationId":"post-storage-access-keys","tags":["Object Storage"],"security":[{"Bearer":[]}],"description":"Creates an object storage IAM access key for a project. The secret is returned only once, in this response, and cannot be retrieved again. The provider is selected by `storage_class`: `standard` provisions the key on Wasabi and `high_performance` provisions it on VAST.","x-mint":{"href":"/api-reference/post-storage-access-keys"},"requestBody":{"required":true,"content":{"application/vnd.api+json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["type","attributes"],"properties":{"type":{"type":"string","enum":["access_keys"]},"attributes":{"type":"object","required":["project","storage_class","name","access_scope","region"],"properties":{"project":{"type":"string","description":"Project ID or slug the access key belongs to."},"storage_class":{"type":"string","enum":["standard","high_performance"],"description":"Backend storage tier. `standard` provisions the key on Wasabi; `high_performance` provisions it on VAST."},"name":{"type":"string","description":"Name for the access key. Normalized server-side (lowercased, with special characters replaced by hyphens)."},"access_scope":{"type":"string","enum":["fullaccess","limited_access"],"description":"`fullaccess` grants access to all of the project's buckets. `limited_access` restricts the key to the buckets listed in `bucket_permissions`."},"region":{"type":"string","description":"Region slug (e.g., `DAL`, `SAO2`). Selects the VAST cluster for `high_performance` storage. Required for all requests."},"bucket_permissions":{"type":"array","description":"Per-bucket permissions. Required when `access_scope` is `limited_access`; ignored for `fullaccess`.","items":{"type":"object","required":["bucket_id","permission"],"properties":{"bucket_id":{"type":"string","description":"Bucket (object storage) ID to grant access to."},"permission":{"type":"string","enum":["readonly","rw"],"description":"`readonly` grants read-only access; `rw` grants read and write access."}}}}}}}}}},"examples":{"FullAccess":{"summary":"Full access key (standard / Wasabi)","value":{"data":{"type":"access_keys","attributes":{"project":"proj_6059EqYkOQj8p","storage_class":"standard","name":"my-access-key","access_scope":"fullaccess","region":"DAL"}}}},"LimitedAccess":{"summary":"Limited access key with per-bucket permissions","value":{"data":{"type":"access_keys","attributes":{"project":"proj_6059EqYkOQj8p","storage_class":"standard","name":"my-limited-key","access_scope":"limited_access","region":"DAL","bucket_permissions":[{"bucket_id":"bucket_6VE1Wd37dXnZJ","permission":"readonly"},{"bucket_id":"bucket_7WF2Xe48eYoAK","permission":"rw"}]}}}}}}}},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"summary":"Standard (Wasabi) access key","value":{"data":{"type":"access_keys","attributes":{"access_key":{"access_key_id":"AKIA123456789","secret_access_key":"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY","name":"my-access-key","status":"Active","username":"user+my-access-key@example.com"}}}}}},"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["access_keys"]},"attributes":{"type":"object","properties":{"access_key":{"type":"object","description":"The newly created access key. The secret is included only in this create response and cannot be retrieved again. Field names depend on the provider: `standard` (Wasabi) returns `access_key_id` and `secret_access_key`; `high_performance` (VAST) returns `access_key` and `secret_key`.","properties":{"access_key_id":{"type":"string","description":"Access key ID (standard / Wasabi)."},"secret_access_key":{"type":"string","description":"Secret access key (standard / Wasabi). Returned only once."},"access_key":{"type":"string","description":"Access key ID (high_performance / VAST)."},"secret_key":{"type":"string","description":"Secret key (high_performance / VAST). Returned only once."},"name":{"type":"string","description":"Access key name."},"status":{"type":"string","description":"Access key status (e.g., `Active`)."},"username":{"type":"string","description":"Underlying IAM user the key belongs to."}}}}}}}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"Unauthorized":{"value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","status":"forbidden","title":"User Authorization Error","detail":"You are not authorized to perform this action.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"InvalidProject":{"value":{"errors":[{"code":"INVALID_PROJECT","title":"Invalid project","detail":"We could not find the project you are trying to create an access key for.","meta":{},"status":"404"}]}},"StorageResourceNotFound":{"value":{"errors":[{"code":"STORAGE_RESOURCE_NOT_FOUND","title":"Storage Resource Not Found","detail":"Storage resource not found.","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ValidationError":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"bucket_permissions is required when access_scope is limited_access","meta":{},"status":"422"}]}},"InvalidRegion":{"value":{"errors":[{"code":"INVALID_REGION","title":"Invalid region","detail":"We could not find the region you specified.","meta":{},"status":"422"}]}},"MissingWasabiStorage":{"value":{"errors":[{"code":"MISSING_WASABI_STORAGE","title":"Missing Wasabi Storage","detail":"The project does not have a Wasabi object storage configured.","meta":{},"status":"422"}]}},"InvalidBucketId":{"value":{"errors":[{"code":"INVALID_BUCKET_ID","title":"Invalid Bucket ID","detail":"One or more bucket IDs are invalid or do not belong to this project.","meta":{},"status":"422"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}},"get":{"summary":"List access keys","operationId":"get-storage-access-keys","tags":["Object Storage"],"security":[{"Bearer":[]}],"description":"Lists object storage access keys for a project, grouped by storage class. Secrets are never returned by this endpoint.","parameters":[{"name":"project","in":"query","required":true,"description":"Project ID or slug to list access keys for.","schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-storage-access-keys"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"standard":[{"name":"key1","username":"user+key1@example.com","access_key_id":"AKIA123456789","status":"Active","created_at":"2024-01-01T00:00:00Z","region":null}],"high_performance":[{"name":"key2","username":"tenant-2500-key2","access_key_id":"VAST_AKID123","status":"Active","created_at":"2024-01-01T00:00:00Z","region":"DAL"}]}}}},"schema":{"type":"object","properties":{"data":{"type":"object","description":"Access keys grouped by storage class.","properties":{"standard":{"type":"array","description":"Wasabi (standard) access keys.","items":{"type":"object","description":"Access key metadata. Exact fields depend on the storage provider.","properties":{"name":{"type":"string"},"username":{"type":"string"},"access_key_id":{"type":"string"},"status":{"type":"string"},"created_at":{"type":"string"},"region":{"type":"string","nullable":true}}}},"high_performance":{"type":"array","description":"VAST (high_performance) access keys, across all regions.","items":{"type":"object","description":"Access key metadata. Exact fields depend on the storage provider.","properties":{"name":{"type":"string"},"username":{"type":"string"},"access_key_id":{"type":"string"},"status":{"type":"string"},"created_at":{"type":"string"},"region":{"type":"string"}}}}}}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"Unauthorized":{"value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","status":"forbidden","title":"User Authorization Error","detail":"You are not authorized to perform this action.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"InvalidProject":{"value":{"errors":[{"code":"INVALID_PROJECT","title":"Invalid project","detail":"We could not find the project you are trying to create an access key for.","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}}},"/storage/access_keys/{username}/{storage_class}":{"delete":{"summary":"Delete access key","operationId":"delete-storage-access-keys-username","tags":["Object Storage"],"security":[{"Bearer":[]}],"description":"Permanently deletes an object storage access key and its associated provider-side credentials. Deletion cannot be undone: it revokes the key's credentials and removes the key from the storage provider. For `standard` (Wasabi) keys, the IAM user is removed from each of the project's bucket policies, all of the user's access keys are revoked, and the IAM user is deleted. For `high_performance` (VAST) keys, the VAST user's S3 keys are revoked, its attached S3 policies are deleted, and the VAST user is removed.","x-mint":{"href":"/api-reference/delete-storage-access-keys-username"},"parameters":[{"name":"username","in":"path","required":true,"description":"Name of the access key to delete.","schema":{"type":"string"}},{"name":"storage_class","in":"path","required":true,"description":"Backend storage tier of the access key. `standard` targets Wasabi; `high_performance` targets VAST.","schema":{"type":"string","enum":["standard","high_performance"]}},{"name":"project","in":"query","required":true,"description":"Project ID or slug the access key belongs to.","schema":{"type":"string"}},{"name":"region","in":"query","required":false,"description":"Region slug (e.g., `DAL`, `SAO2`). Required for `high_performance` (VAST) keys to select the VAST cluster; ignored for `standard` (Wasabi) keys.","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"Unauthorized":{"value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","status":"forbidden","title":"User Authorization Error","detail":"You are not authorized to perform this action.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"AccessKeyNotFound":{"value":{"errors":[{"code":"ACCESS_KEY_NOT_FOUND","title":"Access Key Not Found","detail":"The access key could not be found.","meta":{},"status":"404"}]}},"InvalidProject":{"value":{"errors":[{"code":"INVALID_PROJECT","title":"Invalid project","detail":"We could not find the project you are trying to create an access key for.","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}}},"/storage/buckets/{id}/access_keys":{"get":{"summary":"List bucket access keys","operationId":"get-storage-bucket-access-keys","tags":["Object Storage"],"security":[{"Bearer":[]}],"description":"Lists IAM access keys associated with an object storage bucket. Secrets are never returned by this endpoint.","parameters":[{"name":"id","in":"path","required":true,"description":"The object storage (bucket) ID","schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-storage-bucket-access-keys"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"name":"key1","username":"testuser+key1@example.com","access_key_id":"AKIA123456789","status":"Active","created_at":"2024-01-01T00:00:00Z","access":"fullaccess"}]}}},"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","description":"Access key metadata. Exact fields depend on the storage provider.","properties":{"name":{"type":"string"},"username":{"type":"string"},"access_key_id":{"type":"string"},"status":{"type":"string"},"created_at":{"type":"string"},"access":{"type":"string"}}}}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"Unauthorized":{"value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","status":"forbidden","title":"User Authorization Error","detail":"You are not authorized to perform this action.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"NotFound":{"value":{"errors":[{"code":"NOT_FOUND","message":"Object storage not found"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}}},"/storage/buckets":{"get":{"summary":"List buckets","operationId":"get-storage-buckets","tags":["Object Storage"],"security":[{"Bearer":[]}],"description":"Lists all object storages from a team.","parameters":[{"name":"filter[project]","in":"query","required":false,"description":"The project ID or Slug to filter by","schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-storage-buckets"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"bucket_6VE1Wd37dXnZJ","type":"object_storages","attributes":{"name":"my-bucket-storage","storage_type":"object","storage_class":"standard","created_at":"2026-03-19T10:30:00.000Z","bucket_name":"my-bucket","endpoint":"https://objects.us-east-1.storage.sh","versioning":false,"locking":false,"retention_mode":"NONE","retention_period":null,"source":"default","region":{"id":"SAO2","city":"SAO2","country":"Brazil"},"project":{"id":"proj_6059EqYkOQj8p","name":"My Project","slug":"my-project","description":"Project description","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_lV9Xe2AAK5CbMgGbpPYLskLRXyV","name":"My Team","slug":"my-team","description":"My Team","address":"123 Main St","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"USD","name":"US Dollar","currency_id":null}}}}]}}},"schema":{"$ref":"#/components/schemas/object_storages"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Object Storage is not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}},"post":{"summary":"Create bucket","operationId":"post-storage-buckets","tags":["Object Storage"],"security":[{"Bearer":[]}],"description":"Creates a new object storage bucket for a project.","x-mint":{"href":"/api-reference/post-storage-buckets"},"requestBody":{"required":true,"content":{"application/vnd.api+json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["type","attributes"],"properties":{"type":{"type":"string","enum":["objects"]},"attributes":{"type":"object","required":["project","name","region"],"properties":{"project":{"type":"string","description":"Project ID or slug"},"name":{"type":"string","description":"Object storage name. Cannot contain special characters or spaces."},"region":{"type":"string","description":"Site slug representing the region (e.g., DAL, SAO2)"},"scoped":{"type":"boolean","description":"Whether to create a scoped storage bucket. When true, the bucket is isolated to a specific customer context. Defaults to false.","default":false},"customer":{"type":"string","description":"Customer identifier for scoped storage. Used when `scoped` is true to create customer-specific bucket isolation."},"storage_class":{"type":"string","enum":["standard","high_performance"],"default":"standard","description":"Backend storage tier. `standard` is the default S3-compatible tier. `high_performance` is a lower-latency, higher-throughput tier available in select regions only."},"versioning":{"type":"boolean","default":false,"description":"Enable S3 object versioning. Versioning can be suspended later unless Object Lock is enabled; enabling Object Lock requires versioning and prevents versioning from being suspended."},"locking":{"type":"boolean","default":false,"description":"Enable S3 Object Lock (WORM). Must be enabled at bucket creation; cannot be added to an existing bucket. When `locking` is `true`, `versioning` is automatically enabled."},"retention_mode":{"type":"string","enum":["NONE","COMPLIANCE","GOVERNANCE"],"default":"NONE","description":"Object Lock retention mode applied to new objects. `GOVERNANCE` allows privileged users to override the retention; `COMPLIANCE` cannot be overridden by anyone. Only applies when `locking` is `true`."},"retention_period":{"type":"integer","nullable":true,"description":"Default retention period, in days, applied to new objects when Object Lock is enabled. Only applies when `locking` is `true`."}}}}}}},"examples":{"Create":{"summary":"Create object storage","value":{"data":{"type":"objects","attributes":{"project":"proj_6059EqYkOQj8p","name":"my-bucket","region":"DAL"}}}},"CreateScoped":{"summary":"Create scoped object storage","value":{"data":{"type":"objects","attributes":{"project":"proj_6059EqYkOQj8p","name":"customer-bucket","region":"DAL","scoped":true,"customer":"acme-corp"}}}}}}}},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"bucket_6VE1Wd37dXnZJ","type":"object_storages","attributes":{"name":"my-bucket","storage_type":"object","storage_class":"standard","created_at":"2026-03-19T15:30:00.000Z","bucket_name":"my-bucket","endpoint":"https://objects.us-east-1.storage.sh","versioning":false,"locking":false,"retention_mode":"NONE","retention_period":null,"region":{"id":"DAL","city":"DAL","country":"United States"},"project":{"id":"proj_6059EqYkOQj8p","name":"My Project","slug":"my-project","description":"Project description","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_lV9Xe2AAK5CbMgGbpPYLskLRXyV","name":"My Team","slug":"my-team","description":"My Team","address":"123 Main St","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"USD","name":"US Dollar","currency_id":null}}}}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/object_storage_data"}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"STORAGE_NOT_ENABLED","title":"Object Storage not enabled","detail":"Object Storage is not enabled for this team","meta":{},"status":"403"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","status":"forbidden","title":"User Authorization Error","detail":"You are not authorized to perform this action.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"InvalidProject":{"value":{"errors":[{"code":"INVALID_PROJECT","title":"Invalid project","detail":"We could not find the project you are trying to create object storage for.","meta":{},"status":"404"}]}},"InvalidRegion":{"value":{"errors":[{"code":"INVALID_REGION","title":"Invalid region","detail":"We could not find the region you specified.","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"409":{"description":"Conflict","content":{"application/vnd.api+json":{"examples":{"AlreadyExists":{"value":{"errors":[{"code":"STORAGE_CONFLICT","title":"Storage Resource Conflict","detail":"Object storage already exists.","meta":{},"status":"409"}]}},"BucketNameTaken":{"value":{"errors":[{"code":"BUCKET_NAME_TAKEN","title":"Bucket Name Taken","detail":"Bucket name is already in use. Choose a different name.","meta":{},"status":"409"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ValidationError":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"name cannot contain special chars or spaces","meta":{},"status":"422"}]}},"LocationUnavailable":{"value":{"errors":[{"code":"LOCATION_UNAVAILABLE","title":"Location not available","detail":"Location 'DAL' is not available for high_performance object storage.","meta":{},"status":"422"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"500":{"description":"Internal Server Error","content":{"application/vnd.api+json":{"examples":{"SetupError":{"value":{"errors":[{"code":"OBJECT_STORAGE_SETUP_ERROR","title":"Object storage setup error","detail":"Failed to provision object storage infrastructure","meta":{},"status":"500"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}}},"/storage/buckets/{id}":{"get":{"summary":"Retrieve bucket","operationId":"get-storage-bucket","tags":["Object Storage"],"security":[{"Bearer":[]}],"description":"Shows details of a specific object storage.","parameters":[{"name":"id","in":"path","required":true,"description":"The object storage ID","schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-storage-bucket"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"bucket_6VE1Wd37dXnZJ","type":"object_storages","attributes":{"name":"my-bucket-storage","storage_type":"object","storage_class":"standard","created_at":"2026-03-19T10:30:00.000Z","bucket_name":"my-bucket","endpoint":"https://objects.us-east-1.storage.sh","versioning":false,"locking":false,"retention_mode":"NONE","retention_period":null,"source":"default","region":{"id":"SAO2","city":"SAO2","country":"Brazil"},"project":{"id":"proj_6059EqYkOQj8p","name":"My Project","slug":"my-project","description":"Project description","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":1,"virtual_machines":0,"vlans":0}},"team":{"id":"team_lV9Xe2AAK5CbMgGbpPYLskLRXyV","name":"My Team","slug":"my-team","description":"My Team","address":"123 Main St","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"USD","name":"US Dollar","currency_id":null}}}}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/object_storage_data"}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Object Storage is not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"NotFound":{"value":{"errors":[{"code":"NOT_FOUND","message":"Object storage not found"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}},"delete":{"summary":"Delete bucket","operationId":"delete-storage-buckets","tags":["Object Storage"],"security":[{"Bearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The object storage ID","schema":{"type":"string"}}],"description":"Allows you to remove an object storage from a project.","x-mint":{"href":"/api-reference/delete-storage-buckets"},"responses":{"204":{"description":"No Content"},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"STORAGE_NOT_ENABLED","message":"Object Storage is not enabled for this team"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","status":"forbidden","title":"User Authorization Error","detail":"You are not authorized to perform this action.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"NotFound":{"value":{"errors":[{"code":"not_found","title":"Error","detail":"Specified Record Not Found","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"409":{"description":"Conflict","content":{"application/vnd.api+json":{"examples":{"BucketNotEmpty":{"value":{"errors":[{"code":"STORAGE_BUCKET_NOT_EMPTY","title":"Bucket Not Empty","detail":"Bucket is not empty. Delete all objects (including all versions and delete markers) before deleting the bucket.","meta":{},"status":"409"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"500":{"description":"Internal Server Error","content":{"application/vnd.api+json":{"examples":{"BucketDeletionError":{"value":{"errors":[{"code":"BUCKET_DELETION_ERROR","title":"Bucket deletion error","detail":"We had a problem cleaning up your bucket.","meta":{},"status":"500"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}}},"/storage/buckets/{bucket_id}/lifecycle_rules":{"get":{"summary":"List lifecycle rules","operationId":"get-storage-bucket-lifecycle-rules","tags":["Object Storage"],"security":[{"Bearer":[]}],"description":"Lists all lifecycle rules for a specific object storage bucket.","parameters":[{"name":"bucket_id","in":"path","required":true,"description":"The object storage bucket ID","schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-storage-bucket-lifecycle-rules"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"lifecycle_7Rk2Wd38dXnZJ","type":"lifecycle_rules","attributes":{"name":"delete-old-logs","enabled":true,"prefix":"logs/","expiration_days":30,"noncurrent_days":null,"abort_mpu_days_after_initiation":null}},{"id":"lifecycle_9Pk3Xe49eYoAK","type":"lifecycle_rules","attributes":{"name":"cleanup-temp-files","enabled":true,"prefix":"temp/","expiration_days":7,"noncurrent_days":14,"abort_mpu_days_after_initiation":7}}]}}},"schema":{"$ref":"#/components/schemas/lifecycle_rules"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"STORAGE_NOT_ENABLED","title":"Object Storage not enabled"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"NotFound":{"value":{"errors":[{"code":"not_found","title":"Error","detail":"Specified Record Not Found","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}},"post":{"summary":"Create lifecycle rule","operationId":"post-storage-bucket-lifecycle-rules","tags":["Object Storage"],"security":[{"Bearer":[]}],"description":"Creates a new lifecycle rule for an object storage bucket. Lifecycle rules automate object expiration based on age.","parameters":[{"name":"bucket_id","in":"path","required":true,"description":"The object storage bucket ID","schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/post-storage-bucket-lifecycle-rules"},"requestBody":{"required":true,"content":{"application/vnd.api+json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["type","attributes"],"properties":{"type":{"type":"string","enum":["lifecycle_rules"]},"attributes":{"type":"object","required":["name","expiration_days"],"properties":{"name":{"type":"string","description":"Name of the lifecycle rule"},"enabled":{"type":"boolean","description":"Whether the rule is active. Defaults to true if not specified.","default":true},"prefix":{"type":"string","nullable":true,"description":"Object key prefix to filter which objects the rule applies to. If not specified, the rule applies to all objects in the bucket."},"expiration_days":{"type":"integer","minimum":1,"description":"Number of days after object creation when the object expires and is automatically deleted"},"noncurrent_days":{"type":"integer","minimum":1,"nullable":true,"description":"Number of days after which noncurrent object versions expire (for versioned buckets)"},"abort_mpu_days_after_initiation":{"type":"integer","minimum":1,"nullable":true,"description":"Number of days after initiation to abort incomplete multipart uploads"}}}}}}},"examples":{"Create":{"summary":"Create a basic lifecycle rule","value":{"data":{"type":"lifecycle_rules","attributes":{"name":"delete-old-logs","enabled":true,"prefix":"logs/","expiration_days":30}}}},"CreateWithAllOptions":{"summary":"Create a lifecycle rule with all options","value":{"data":{"type":"lifecycle_rules","attributes":{"name":"full-cleanup-rule","enabled":true,"prefix":"temp/","expiration_days":30,"noncurrent_days":14,"abort_mpu_days_after_initiation":7}}}}}}}},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"lifecycle_7Rk2Wd38dXnZJ","type":"lifecycle_rules","attributes":{"name":"delete-old-logs","enabled":true,"prefix":"logs/","expiration_days":30,"noncurrent_days":null,"abort_mpu_days_after_initiation":null}}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/lifecycle_rule_data"}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"STORAGE_NOT_ENABLED","title":"Object Storage not enabled","detail":"Object Storage is not enabled for this team","meta":{},"status":"403"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","status":"forbidden","title":"User Authorization Error","detail":"You are not authorized to perform this action.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"NotFound":{"value":{"errors":[{"code":"not_found","title":"Error","detail":"Specified Record Not Found","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ValidationError":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"expiration_days must be greater than 0","meta":{},"status":"422"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"500":{"description":"Internal Server Error","content":{"application/vnd.api+json":{"examples":{"CreateError":{"value":{"errors":[{"code":"LIFECYCLE_RULE_CREATE_ERROR","title":"Lifecycle rule creation error","detail":"Failed to create lifecycle rule on storage provider","meta":{},"status":"500"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}}},"/storage/buckets/{bucket_id}/lifecycle_rules/{id}":{"get":{"summary":"Retrieve lifecycle rule","operationId":"get-storage-bucket-lifecycle-rule","tags":["Object Storage"],"security":[{"Bearer":[]}],"description":"Retrieves details of a specific lifecycle rule.","parameters":[{"name":"bucket_id","in":"path","required":true,"description":"The object storage bucket ID","schema":{"type":"string"}},{"name":"id","in":"path","required":true,"description":"The lifecycle rule ID","schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-storage-bucket-lifecycle-rule"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"lifecycle_7Rk2Wd38dXnZJ","type":"lifecycle_rules","attributes":{"name":"delete-old-logs","enabled":true,"prefix":"logs/","expiration_days":30,"noncurrent_days":null,"abort_mpu_days_after_initiation":null}}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/lifecycle_rule_data"}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"STORAGE_NOT_ENABLED","title":"Object Storage not enabled"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"NotFound":{"value":{"errors":[{"code":"not_found","title":"Error","detail":"Specified Record Not Found","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}},"patch":{"summary":"Update lifecycle rule","operationId":"patch-storage-bucket-lifecycle-rule","tags":["Object Storage"],"security":[{"Bearer":[]}],"description":"Updates an existing lifecycle rule for an object storage bucket.","parameters":[{"name":"bucket_id","in":"path","required":true,"description":"The object storage bucket ID","schema":{"type":"string"}},{"name":"id","in":"path","required":true,"description":"The lifecycle rule ID","schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/patch-storage-bucket-lifecycle-rule"},"requestBody":{"required":true,"content":{"application/vnd.api+json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["type","attributes"],"properties":{"type":{"type":"string","enum":["lifecycle_rules"]},"attributes":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Name of the lifecycle rule"},"enabled":{"type":"boolean","description":"Whether the rule is active"},"prefix":{"type":"string","nullable":true,"description":"Object key prefix to filter which objects the rule applies to"},"expiration_days":{"type":"integer","minimum":1,"description":"Number of days after object creation when the object expires"},"noncurrent_days":{"type":"integer","minimum":1,"nullable":true,"description":"Number of days after which noncurrent object versions expire"},"abort_mpu_days_after_initiation":{"type":"integer","minimum":1,"nullable":true,"description":"Number of days after initiation to abort incomplete multipart uploads"}}}}}}},"examples":{"Update":{"summary":"Update lifecycle rule","value":{"data":{"type":"lifecycle_rules","attributes":{"name":"delete-old-logs","enabled":false,"expiration_days":60}}}}}}}},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"lifecycle_7Rk2Wd38dXnZJ","type":"lifecycle_rules","attributes":{"name":"delete-old-logs","enabled":false,"prefix":"logs/","expiration_days":60,"noncurrent_days":null,"abort_mpu_days_after_initiation":null}}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/lifecycle_rule_data"}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"STORAGE_NOT_ENABLED","title":"Object Storage not enabled","detail":"Object Storage is not enabled for this team","meta":{},"status":"403"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","status":"forbidden","title":"User Authorization Error","detail":"You are not authorized to perform this action.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"NotFound":{"value":{"errors":[{"code":"not_found","title":"Error","detail":"Specified Record Not Found","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"ValidationError":{"value":{"errors":[{"code":"VALIDATION_ERROR","title":"Validation Error","detail":"expiration_days must be greater than 0","meta":{},"status":"422"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"500":{"description":"Internal Server Error","content":{"application/vnd.api+json":{"examples":{"UpdateError":{"value":{"errors":[{"code":"LIFECYCLE_RULE_UPDATE_ERROR","title":"Lifecycle rule update error","detail":"Failed to update lifecycle rule on storage provider","meta":{},"status":"500"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}},"delete":{"summary":"Delete lifecycle rule","operationId":"delete-storage-bucket-lifecycle-rule","tags":["Object Storage"],"security":[{"Bearer":[]}],"description":"Deletes a lifecycle rule from an object storage bucket.","parameters":[{"name":"bucket_id","in":"path","required":true,"description":"The object storage bucket ID","schema":{"type":"string"}},{"name":"id","in":"path","required":true,"description":"The lifecycle rule ID","schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/delete-storage-bucket-lifecycle-rule"},"responses":{"204":{"description":"No Content"},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"STORAGE_NOT_ENABLED","title":"Object Storage not enabled","detail":"Object Storage is not enabled for this team","meta":{},"status":"403"}]}},"InsufficientPermissions":{"value":{"errors":[{"code":"USER_AUTHORIZATION_ERROR","status":"forbidden","title":"User Authorization Error","detail":"You are not authorized to perform this action.","meta":{}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"NotFound":{"value":{"errors":[{"code":"not_found","title":"Error","detail":"Specified Record Not Found","meta":{},"status":"404"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"500":{"description":"Internal Server Error","content":{"application/vnd.api+json":{"examples":{"DeleteError":{"value":{"errors":[{"code":"LIFECYCLE_RULE_DESTROY_ERROR","title":"Lifecycle rule deletion error","detail":"Failed to delete lifecycle rule from storage provider","meta":{},"status":"500"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}}},"/storage/buckets/{bucket_id}/metrics":{"get":{"summary":"Retrieve bucket metrics","operationId":"get-storage-bucket-metrics","tags":["Object Storage"],"security":[{"Bearer":[]}],"description":"Retrieves usage metrics for a specific object storage bucket, including storage consumption and estimated cost for the current billing period.","parameters":[{"name":"bucket_id","in":"path","required":true,"description":"The object storage bucket ID","schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-storage-bucket-metrics"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"bkt_6VE1Wd37dXnZJ","type":"object_storage_metrics","attributes":{"period":{"start":"2026-05-01T00:00:00Z","end":"2026-06-01T00:00:00Z"},"storage":{"consumed":4096,"current":3900,"unit":"GB"},"estimated_cost":{"amount":250,"currency":"BRL"}}}}}},"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","description":"The bucket ID"},"type":{"type":"string","enum":["object_storage_metrics"]},"attributes":{"type":"object","properties":{"period":{"type":"object","description":"The current billing period","properties":{"start":{"type":"string","format":"date-time","nullable":true,"description":"Start of the billing period in ISO 8601 format"},"end":{"type":"string","format":"date-time","nullable":true,"description":"End of the billing period in ISO 8601 format"}}},"storage":{"type":"object","description":"Storage consumption metrics","properties":{"consumed":{"type":"integer","description":"Billed storage usage for the current period"},"current":{"type":"integer","description":"Latest recorded storage usage (last datapoint)"},"unit":{"type":"string","enum":["GB"],"description":"Unit of measurement for storage"}}},"estimated_cost":{"type":"object","description":"Estimated cost for the current billing period","properties":{"amount":{"type":"number","description":"Estimated cost amount"},"currency":{"type":"string","description":"Currency code (e.g., USD, BRL)"}}}}}}}}}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"STORAGE_NOT_ENABLED","title":"Object Storage not enabled"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"examples":{"NotFound":{"value":{"errors":[{"code":"NOT_FOUND","message":"Object storage not found"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}}},"/tags":{"get":{"summary":"List tags","operationId":"get-tags","tags":["Tags"],"security":[{"Bearer":[]}],"description":"List all Tags in the team.\n","x-mint":{"href":"/api-reference/get-tags"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"tag_br3pyBM8YeIyBQGR0rbocVrmJnE","type":"tags","attributes":{"name":"Angrod","slug":"angrod","description":"Dolorem vel distinctio et.","color":"#141515","team":{"id":"team_RPp3R8oZyjSAGGP7oeMEsR8yPNgo","name":"627 Team","slug":"627-team","description":"627 Team","address":"977 Julietta Views, West Ocie, KS 10398-1982","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}]}}},"schema":{"$ref":"#/components/schemas/custom_tags"}}}}}},"post":{"summary":"Create tag","operationId":"create-tag","tags":["Tags"],"security":[{"Bearer":[]}],"parameters":[],"description":"Create a Tag in the team.\n","x-mint":{"href":"/api-reference/create-tag"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"tag_Rz8Ka32gLoUAZJYxkMrxiR8j9Ppa","type":"tags","attributes":{"name":"Tag Name","slug":"tag-name","description":"Tag Description","color":"#bebebe","team":{"id":"team_P5gz2MnmXoT4JXGwobmvf8bVoV3","name":"628 Team","slug":"628-team","description":"628 Team","address":"300 Jacqueline Village, Lake Shaunmouth, NH 56746","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}}}},"schema":{"$ref":"#/components/schemas/custom_tag"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"NameAlreadyTaken":{"value":{"errors":[{"code":"NAME_ALREADY_TAKEN","detail":"is already taken","source":{"pointer":"/data/attributes/name"}}]}},"NameTooSimilar":{"value":{"errors":[{"code":"NAME_TOO_SIMILAR","detail":"is too similar to an existing tag name","source":{"pointer":"/data/attributes/name"}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["tags"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Tag","maxLength":40},"description":{"type":"string","description":"Description of the Tag","nullable":true,"maxLength":255},"color":{"type":"string","description":"Color of the Tag"}},"required":["name","color"]}}}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"tags","attributes":{"name":"Tag Name","description":"Tag Description","color":"#bebebe"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["tags"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Tag","maxLength":40},"description":{"type":"string","description":"Description of the Tag","nullable":true,"maxLength":255},"color":{"type":"string","description":"Color of the Tag"}}}}}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"tags","attributes":{"name":"Tag Name","description":"Tag Description","color":"#bebebe"}}}}}}},"required":true}}},"/tags/{tag_id}":{"patch":{"summary":"Update tag","operationId":"update-tag","tags":["Tags"],"security":[{"Bearer":[]}],"parameters":[{"name":"tag_id","in":"path","required":true,"examples":{"Success":{"value":"tag_XBlke2r5RyiyVpG9LPK8tWjalLL"}},"schema":{"type":"string"}}],"description":"Update a Tag in the team.\n","x-mint":{"href":"/api-reference/update-tag"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"tag_XBlke2r5RyiyVpG9LPK8tWjalLL","type":"tags","attributes":{"name":"Tag Name","slug":"tag-name","description":"Aliquam ducimus atque et.","color":"#73ba73","team":{"id":"team_GplL3jvZnNS2BXLAmWQpf8z354ll","name":"633 Team","slug":"633-team","description":"633 Team","address":"2092 Loreta Summit, West Hershelmouth, WY 97161-6201","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}}}}}}},"schema":{"$ref":"#/components/schemas/custom_tag"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"NameAlreadyTaken":{"value":{"errors":[{"code":"NAME_ALREADY_TAKEN","detail":"is already taken","source":{"pointer":"/data/attributes/name"}}]}},"NameTooSimilar":{"value":{"errors":[{"code":"NAME_TOO_SIMILAR","detail":"is too similar to an existing tag name","source":{"pointer":"/data/attributes/name"}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tags"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Tag","maxLength":40},"description":{"type":"string","description":"Description of the Tag","nullable":true,"maxLength":255},"color":{"type":"string","description":"Color of the Tag"}}}}}}},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"tag_XBlke2r5RyiyVpG9LPK8tWjalLL","type":"tags","attributes":{"name":"Tag Name"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tags"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Tag","maxLength":40},"description":{"type":"string","description":"Description of the Tag","nullable":true,"maxLength":255},"color":{"type":"string","description":"Color of the Tag"}}}}}}},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"tag_XBlke2r5RyiyVpG9LPK8tWjalLL","type":"tags","attributes":{"name":"Tag Name"}}}}}}},"required":true}},"delete":{"summary":"Delete tag","operationId":"destroy-tag","tags":["Tags"],"security":[{"Bearer":[]}],"parameters":[{"name":"tag_id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Update a Tag in the team.\n","x-mint":{"href":"/api-reference/destroy-tag"},"responses":{"204":{"description":"No Content"}}}},"/team":{"get":{"summary":"Retrieve team","operationId":"get-team","tags":["Teams"],"security":[{"Bearer":[]}],"x-mint":{"href":"/api-reference/get-team"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"when bare metal limit is set":{"value":{"data":[{"id":"team_BbQ0gXk6P1uxW7rNvg5VCM2znK2R","type":"teams","attributes":{"name":"641 Team","slug":"641-team","address":"8998 Murphy Fork, North Danahaven, CT 98631","currency":"1f7","created_at":"2026-01-09T15:57:10+00:00","updated_at":"2025-02-09T00:00:00+00:00","status":null,"enforce_mfa":false,"users":[{"id":"user_yxLxQ7mmJehljn3RK18aILyGP17","first_name":"Russell","last_name":"Wunsch","email":"hoyt@brakus.example","created_at":"2025-03-25T00:00:00.000Z","updated_at":"2025-03-30T00:00:00.000Z","role":{"id":"role_332j3k5oxYIKGZGPpxZKCl7nrXP","name":"Steve","created_at":"2025-04-13T00:00:00.000Z","updated_at":"2026-01-23T00:00:00.000Z"}}],"projects":[],"owner":{},"billing":{},"feature_flags":["feature_flag_1","feature_flag_2"],"limits":{"bare_metal":5,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}}}],"meta":{}}},"when bare metal limit is not set":{"value":{"data":[{"id":"team_QzAj9782bVuWjQwwwv4guRw0lL5","type":"teams","attributes":{"name":"642 Team","slug":"642-team","address":"Suite 873 7622 Neal Plaza, Almetaburgh, UT 19776","currency":"7qq","created_at":"2025-11-14T15:57:10+00:00","updated_at":"2025-04-05T00:00:00+00:00","status":null,"enforce_mfa":false,"users":[{"id":"user_kEXBoLzrG4tNZzJYBrV8fN6Jzvy7","first_name":"Marin","last_name":"Pollich","email":"winter.hodkiewicz@huel.test","created_at":"2025-05-19T00:00:00.000Z","updated_at":"2025-06-03T00:00:00.000Z","role":{"id":"role_gpGwBll1EzsZ5GGZ7L6aCnGWbYE","name":"Lincoln","created_at":"2025-03-26T00:00:00.000Z","updated_at":"2026-08-24T00:00:00.000Z"}}],"projects":[],"owner":{},"billing":{},"feature_flags":["feature_flag_1","feature_flag_2"],"limits":{"bare_metal":null,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/teams"}}}}}},"post":{"summary":"Create team","operationId":"post-team","tags":["Teams"],"security":[{"Bearer":[]}],"parameters":[],"x-mint":{"href":"/api-reference/post-team"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"team_aEjv7ZKeWzCrjA5ANeMvImmKEoV","type":"teams","attributes":{"name":"Name","slug":"name","address":"Address","currency":"USD","enforce_mfa":false,"customer_billing_id":"cus_hp2b02do","referred_code":null}},"meta":{"session_token":"token-for-team"}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/team"},"meta":{"type":"object","properties":{"session_token":{"type":"string","description":"Create-only session token to authenticate follow-up requests against the new team"}}}}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["teams"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"currency":{"type":"string","enum":["USD","BRL"]},"address":{"type":"string"},"enforce_mfa":{"type":"boolean"},"referred_code":{"type":"string","description":"Supported only for first team creation"}},"required":["name","currency"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"teams","attributes":{"name":"Name","address":"Address","currency":"USD"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["teams"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"currency":{"type":"string","enum":["USD","BRL"]},"address":{"type":"string"},"enforce_mfa":{"type":"boolean"},"referred_code":{"type":"string","description":"Supported only for first team creation"}},"required":["name","currency"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"teams","attributes":{"name":"Name","address":"Address","currency":"USD"}}}}}}},"required":true}}},"/team/{team_id}":{"patch":{"summary":"Update team","operationId":"patch-current-team","tags":["Teams"],"security":[{"Bearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"examples":{"Success":{"value":"team_bVJM4y6m4VCyy101JzA3szlVGRb"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/patch-current-team"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"team_bVJM4y6m4VCyy101JzA3szlVGRb","type":"teams","attributes":{"name":"Langworth-Langosh","slug":"langworth-langosh","address":"2746 Joe Stream","currency":"WST","enforce_mfa":false,"referred_code":null}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/team"}}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["teams"]},"attributes":{"type":"object","properties":{"address":{"type":"string"},"name":{"type":"string"},"enforce_mfa":{"type":"boolean"}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"team_bVJM4y6m4VCyy101JzA3szlVGRb","type":"teams","attributes":{"name":"Name","address":"Address"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["teams"]},"attributes":{"type":"object","properties":{"address":{"type":"string"},"name":{"type":"string"},"enforce_mfa":{"type":"boolean"}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"team_bVJM4y6m4VCyy101JzA3szlVGRb","type":"teams","attributes":{"name":"Name","address":"Address"}}}}}}},"required":true}}},"/traffic":{"get":{"summary":"Retrieve traffic","operationId":"get-traffic-consumption","tags":["Traffic"],"security":[{"Bearer":[]}],"parameters":[{"name":"filter[server]","in":"query","required":false,"description":"The server id to filter by","examples":{"Success":{"value":"sv_A05EdQ50dvKYQ"}},"schema":{"type":"string"}},{"name":"filter[project]","in":"query","required":false,"description":"The project id to filter by","schema":{"type":"string"}},{"name":"filter[date][gte]","in":"query","required":true,"description":"The start timestamp to retrieve the traffic. You must provide in ISO8601 format. Example: filter[date][gte]=2024-04-01T00:00:00Z","examples":{"Success":{"value":"2025-12-14T15:57:10Z"}},"schema":{"type":"string"}},{"name":"filter[date][lte]","in":"query","required":true,"description":"The end timestamp to retrieve the traffic. You must provide in ISO8601 format. The period must not exceed 366 days. Example: filter[date][gte]=2024-04-31T23:59:59Z","examples":{"Success":{"value":"2026-01-14T15:57:10Z"}},"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-traffic-consumption"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"","type":"traffic","attributes":{"from_date":1765727830,"to_date":1768406230,"total_inbound_gb":102,"total_outbound_gb":241,"total_inbound_95th_percentile_mbps":1832.91,"total_outbound_95th_percentile_mbps":1819.99,"regions":[{"region_slug":"brazil","total_inbound_gb":102,"total_outbound_gb":241,"total_inbound_95th_percentile_mbps":1832.91,"total_outbound_95th_percentile_mbps":1819.99,"data":[{"date":"2021-07-01T00:00:00.000+00:00","inbound_gb":10,"outbound_gb":102,"avg_outbound_speed_mbps":1.19,"avg_inbound_speed_mbps":0.13},{"date":"2021-07-02T00:00:00.000+00:00","inbound_gb":2,"outbound_gb":6,"avg_outbound_speed_mbps":0.08,"avg_inbound_speed_mbps":0.02},{"date":"2021-07-03T00:00:00.000+00:00","inbound_gb":5,"outbound_gb":15,"avg_outbound_speed_mbps":0.18,"avg_inbound_speed_mbps":0.06},{"date":"2021-07-04T00:00:00.000+00:00","inbound_gb":57,"outbound_gb":32,"avg_outbound_speed_mbps":0.38,"avg_inbound_speed_mbps":0.66},{"date":"2021-07-05T00:00:00.000+00:00","inbound_gb":11,"outbound_gb":59,"avg_outbound_speed_mbps":0.69,"avg_inbound_speed_mbps":0.13},{"date":"2021-07-06T00:00:00.000+00:00","inbound_gb":17,"outbound_gb":27,"avg_outbound_speed_mbps":0.32,"avg_inbound_speed_mbps":0.2}]}]}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/traffic"}}}}}}},"/traffic/quota":{"get":{"summary":"Retrieve traffic quota","operationId":"get-traffic-quota","tags":["Traffic"],"security":[{"Bearer":[]}],"parameters":[{"name":"filter[project]","in":"query","required":false,"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/get-traffic-quota"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"traffic_quota","type":"traffic_quota","attributes":{"quota_per_project":[{"project_id":"proj_lkg1DekRdvZE5","project_slug":"incredible-bronze-knife","billing_method":"Normal","quota_per_region":[{"region_id":"reg_9QDB5qag","price":500,"region_slug":"brazil","quota_in_tb":{"granted":20,"additional":0,"total":20},"quota_in_mbps":{"granted":0,"additional":0,"total":0}}]}]}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/traffic_quota"}}}}}}},"/user_data":{"get":{"summary":"List user data","operationId":"get-users-data","tags":["User data"],"security":[{"Bearer":[]}],"parameters":[{"name":"filter[project]","in":"query","required":false,"description":"Project ID or slug","schema":{"type":"string"}},{"name":"filter[scope]","in":"query","required":false,"description":"Filter by scope: `project` (has project), `team` (no project), or empty (all)","schema":{"type":"string"}},{"name":"stats[total]","in":"query","required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`.","schema":{"type":"string"}},{"name":"extra_fields[user_data]","in":"query","schema":{"type":"string","default":"decoded_content"},"description":"The `decoded_content` is provided as an extra attribute that shows content in decoded form.","examples":{"Success":{"value":"decoded_content"}}},{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"},{"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"}],"description":"List all Users Data in the project. These scripts can be used to configure servers with user data.\n","x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"},{"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}},"x-mint":{"href":"/api-reference/get-users-data"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"ud_1Qkm7dXzD8nZV","type":"user_data","attributes":{"description":"Thick slices of French toast bread, brown sugar, half-and-half and vanilla, topped with powdered sugar. With two eggs served any style, and your choice of smoked bacon or smoked ham.","content":"VHdvIGJ1dHRlcm1pbGsgd2FmZmxlcywgdG9wcGVkIHdpdGggd2hpcHBlZCBjcmVhbSBhbmQgbWFwbGUgc3lydXAsIGEgc2lkZSBvZiB0d28gZWdncyBzZXJ2ZWQgYW55IHN0eWxlLCBhbmQgeW91ciBjaG9pY2Ugb2Ygc21va2VkIGJhY29uIG9yIHNtb2tlZCBoYW0u","created_at":"2026-01-14T15:57:11+00:00","updated_at":"2026-01-14T15:57:11+00:00","decoded_content":"Two buttermilk waffles, topped with whipped cream and maple syrup, a side of two eggs served any style, and your choice of smoked bacon or smoked ham.","project":{"id":"proj_1ZJrdxoyOg4LV","name":"Heavy Duty Aluminum Coat","slug":"heavy-duty-aluminum-coat","description":"Enormous Bronze Bag","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/user_data"}}}}}},"post":{"summary":"Create user data","operationId":"post-user-data","tags":["User data"],"security":[{"Bearer":[]}],"parameters":[],"description":"Allows you to create User Data in a team, which can be used to perform custom setup on your servers after deploy and reinstall.\n","x-mint":{"href":"/api-reference/post-user-data"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"ud_w49QDB55qagKb","type":"user_data","attributes":{"description":"User Data description","content":"I2Nsb3VkLWNvbmZpZwpydW5jbWQ6CiAtIFsgdG91Y2gsICAvaG9tZS91YnVudHUvdGVzdCBd","created_at":"2026-01-14T15:57:11+00:00","updated_at":"2026-01-14T15:57:11+00:00","decoded_content":"#cloud-config\nruncmd:\n - [ touch,  /home/ubuntu/test ]","project":{"id":"proj_QraYDPW3qpjwW","name":"Rustic Granite Gloves","slug":"rustic-granite-gloves","description":"Heavy Duty Leather Wallet","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}}}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/user_data_object"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["user_data"]},"attributes":{"type":"object","properties":{"description":{"type":"string","description":"description of the User Data"},"project":{"type":"string","description":"Project ID or slug"},"content":{"type":"string","description":"base64 encoded content of the User Data"}},"required":["content","description"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"user_data","attributes":{"content":"I2Nsb3VkLWNvbmZpZwpydW5jbWQ6CiAtIFsgdG91Y2gsICAvaG9tZS91YnVudHUvdGVzdCBd","description":"User Data description","project":"proj_QraYDPW3qpjwW"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["user_data"]},"attributes":{"type":"object","properties":{"description":{"type":"string","description":"description of the User Data"},"project":{"type":"string","description":"Project ID or slug"},"content":{"type":"string","description":"base64 encoded content of the User Data"}},"required":["content","description"]}},"required":["type"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"user_data","attributes":{"content":"I2Nsb3VkLWNvbmZpZwpydW5jbWQ6CiAtIFsgdG91Y2gsICAvaG9tZS91YnVudHUvdGVzdCBd","description":"User Data description","project":"proj_QraYDPW3qpjwW"}}}}}}},"required":true}}},"/user_data/{user_data_id}":{"get":{"summary":"Retrieve user data","operationId":"get-user-data","tags":["User data"],"security":[{"Bearer":[]}],"parameters":[{"name":"user_data_id","in":"path","required":true,"examples":{"Success":{"value":"ud_MLGXPdWgdnNWk"}},"schema":{"type":"string"}},{"name":"extra_fields[user_data]","in":"query","schema":{"type":"string","default":"decoded_content"},"description":"The `decoded_content` is provided as an extra attribute that shows content in decoded form.","examples":{"Success":{"value":"decoded_content"}}}],"description":"Get User Data in the project. These scripts can be used to configure servers with user data.\n","x-mint":{"href":"/api-reference/get-user-data"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"ud_MLGXPdWgdnNWk","type":"user_data","attributes":{"description":"Three egg whites with spinach, mushrooms, caramelized onions, tomatoes and low-fat feta cheese. With herbed quinoa, and your choice of rye or whole-grain toast.","content":"VHdvIGJ1dHRlcm1pbGsgd2FmZmxlcywgdG9wcGVkIHdpdGggd2hpcHBlZCBjcmVhbSBhbmQgbWFwbGUgc3lydXAsIGEgc2lkZSBvZiB0d28gZWdncyBzZXJ2ZWQgYW55IHN0eWxlLCBhbmQgeW91ciBjaG9pY2Ugb2Ygc21va2VkIGJhY29uIG9yIHNtb2tlZCBoYW0u","created_at":"2026-01-14T15:57:11+00:00","updated_at":"2026-01-14T15:57:11+00:00","decoded_content":"Two buttermilk waffles, topped with whipped cream and maple syrup, a side of two eggs served any style, and your choice of smoked bacon or smoked ham.","project":{"id":"proj_pbV0DgkzD4AWz","name":"Sleek Iron Wallet","slug":"sleek-iron-wallet","description":"Small Silk Shoes","provisioning_type":"on_demand","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":0,"vlans":0}}}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/user_data_object"}}}}}},"patch":{"summary":"Update user data","operationId":"patch-user-data","tags":["User data"],"security":[{"Bearer":[]}],"parameters":[{"name":"user_data_id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Allow you update User Data in a team.\n","x-mint":{"href":"/api-reference/patch-user-data"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/user_data_object"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["user_data"]},"attributes":{"type":"object","properties":{"description":{"type":"string","description":"description dummy user data"},"content":{"type":"string","description":"encoded content of the User Data"}}}},"required":["id","type"]}},"required":["data"]}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["user_data"]},"attributes":{"type":"object","properties":{"description":{"type":"string","description":"description dummy user data"},"content":{"type":"string","description":"encoded content of the User Data"}}}},"required":["id","type"]}},"required":["data"]}}}}},"delete":{"summary":"Delete user data","operationId":"delete-user-data","tags":["User data"],"security":[{"Bearer":[]}],"parameters":[{"name":"user_data_id","in":"path","required":true,"schema":{"type":"string"}}],"x-mint":{"href":"/api-reference/delete-user-data"},"responses":{"204":{"description":"No Content"}}}},"/user/profile":{"get":{"summary":"Retrieve profile","operationId":"get-user-profile","tags":["User profile"],"security":[{"Bearer":[]}],"description":"Retrieve the current user profile\n","x-mint":{"href":"/api-reference/get-user-profile"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"user_L9B4LNaW0xiLXYQoaoPyt5oL9EN0","type":"users","attributes":{"first_name":"Jefferey","last_name":"Boyer","email":"lea@crona-hahn.test","created_at":"2025-06-06T00:00:00+00:00","updated_at":"2025-08-26T00:00:00+00:00","role":{"id":"role_B48kwVxyWkuxNJ2ZjpoJcx1Bnlo","name":"owner","created_at":"2025-05-05T00:00:00.000Z","updated_at":"2026-11-10T00:00:00.000Z"}}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/user"}}}}}}}}},"/user/profile/{id}":{"patch":{"summary":"Update profile","operationId":"patch-user-profile","tags":["User profile"],"security":[{"Bearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"examples":{"Success":{"value":"user_8PMvy2GL72uKKyXyANEnsjMQYMP"}},"schema":{"type":"string"}}],"description":"Update the current user profile\n","x-mint":{"href":"/api-reference/patch-user-profile"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"user_8PMvy2GL72uKKyXyANEnsjMQYMP","type":"users","attributes":{"first_name":"Sherwood","last_name":"Ward","email":"deeann_kuhlman@leffler.test","role":"collaborator","created_at":"2026-07-14T16:00:00+00:00","updated_at":"2026-07-14T16:00:00+00:00"}},"meta":{}}}},"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/user_update"},"meta":{"type":"object"}}}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"attributes":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"role":{"type":"string","enum":["administrator","billing","collaborator","owner"]}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"user_8PMvy2GL72uKKyXyANEnsjMQYMP","type":"users","attributes":{"role":"collaborator"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"attributes":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"role":{"type":"string","enum":["administrator","billing","collaborator","owner"]}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"user_8PMvy2GL72uKKyXyANEnsjMQYMP","type":"users","attributes":{"role":"collaborator"}}}}}}},"required":true}}},"/user/teams":{"get":{"summary":"List user teams","operationId":"get-user-teams","tags":["User profile"],"security":[{"Bearer":[]}],"description":"Returns a list of all teams the user belongs to\n","x-mint":{"href":"/api-reference/get-user-teams"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"when bare metal limit is set":{"value":{"data":[{"id":"team_NYGwel1RnbC44GX83lamhRe8Jjw","type":"teams","attributes":{"name":"687 Team","slug":"687-team","address":"595 Schmitt Mountains, West Frances, NJ 39049-3937","currency":"BRL","created_at":"2026-01-09T15:57:13+00:00","updated_at":"2026-01-14T15:57:13+00:00","status":"verified","enforce_mfa":false,"users":[{"id":"user_Mzw8rQR7yyS9p5pyWrzBfyxrMV4","first_name":"Jaime","last_name":"Ziemann","email":"codi_hand@miller.test","created_at":"2026-01-08T00:00:00.000Z","updated_at":"2025-01-27T00:00:00.000Z","role":{"id":"role_V1aYWNZmvlhrk9eoK58JSrY0MX4","name":"owner","created_at":"2025-05-01T00:00:00.000Z","updated_at":"2026-11-05T00:00:00.000Z"}}],"projects":[],"owner":{"id":"user_Mzw8rQR7yyS9p5pyWrzBfyxrMV4","first_name":"Jaime","last_name":"Ziemann","email":"codi_hand@miller.test","created_at":"2026-01-08T00:00:00.000Z","updated_at":"2025-01-27T00:00:00.000Z","role":{"id":"role_V1aYWNZmvlhrk9eoK58JSrY0MX4","name":"owner","created_at":"2025-05-01T00:00:00.000Z","updated_at":"2026-11-05T00:00:00.000Z"}},"billing":{"id":"bill_mw49QDB5qagKb","customer_billing_id":"cus_dluxyhyhjii4qk"},"feature_flags":[],"limits":{"bare_metal":5,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}}}],"meta":{}}},"when bare metal limit is not set":{"value":{"data":[{"id":"team_NXK2MpJXgzU8AGjryZ09Hper7l5","type":"teams","attributes":{"name":"688 Team","slug":"688-team","address":"Apt. 492 6439 Salvatore Lodge, Denatown, MD 56634-2611","currency":"BRL","created_at":"2025-11-14T15:57:13+00:00","updated_at":"2026-01-14T15:57:13+00:00","status":"verified","enforce_mfa":false,"users":[{"id":"user_MbwWpJ37LMt9rBj1E47PFVomyzB7","first_name":"Nieves","last_name":"Huel","email":"nickolas@weimann.example","created_at":"2025-11-16T00:00:00.000Z","updated_at":"2025-04-20T00:00:00.000Z","role":{"id":"role_97mkkRl14RCEzQbYeXJ0t905XMN","name":"owner","created_at":"2025-08-08T00:00:00.000Z","updated_at":"2026-10-14T00:00:00.000Z"}}],"projects":[],"owner":{"id":"user_MbwWpJ37LMt9rBj1E47PFVomyzB7","first_name":"Nieves","last_name":"Huel","email":"nickolas@weimann.example","created_at":"2025-11-16T00:00:00.000Z","updated_at":"2025-04-20T00:00:00.000Z","role":{"id":"role_97mkkRl14RCEzQbYeXJ0t905XMN","name":"owner","created_at":"2025-08-08T00:00:00.000Z","updated_at":"2026-10-14T00:00:00.000Z"}},"billing":{"id":"bill_AW6Q2D9lqKLpr","customer_billing_id":"cus_nnflz4ow2j6zv9"},"feature_flags":[],"limits":{"bare_metal":null,"bare_metal_gpu":1,"virtual_machine":5,"virtual_machine_gpu":3,"elastic_ip":5,"virtual_network":5,"database":null,"filesystem":null,"block_storage":null}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/user_teams"}}}}}}},"/marketplace_apps":{"get":{"summary":"List marketplace apps","operationId":"list-marketplace-apps","tags":["Marketplace apps"],"security":[{"Bearer":[]}],"description":"Lists the marketplace apps available to deploy on Virtual Machines. Only published apps are returned. Requires the `marketplace_apps` feature to be enabled for the team.","x-mint":{"href":"/api-reference/list-marketplace-apps"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"mkapp_x1kg1DegdvZE5","type":"marketplace_apps","attributes":{"name":"OpenClaw","slug":"openclaw","description":"Personal AI agent gateway with messaging integrations","short_description":"Personal AI agent gateway","category":"ai_agents","version":"2026.7.20","system_requirements":{"vcpus":1,"memory_in_gb":2,"storage_in_gb":10,"gpu":false},"deployment_strategy":"user_data","default_operating_system":"ubuntu_24_04_x64_lts","compatible_plans":["vm.small","vm.medium"],"access_instructions":"Connect with: ssh -L 18789:localhost:18789 ubuntu@{{PUBLIC_IPV4}}","upstream_url":"https://github.com/openclaw/openclaw","documentation_url":null,"logo_url":null,"created_at":"2026-07-20T12:00:00+00:00"}}]}}},"schema":{"$ref":"#/components/schemas/marketplace_apps"}}}}}}},"/marketplace_apps/{id}":{"get":{"summary":"Retrieve a marketplace app","operationId":"get-marketplace-app","tags":["Marketplace apps"],"security":[{"Bearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"The marketplace app ID or slug","examples":{"Success":{"value":"openclaw"}},"schema":{"type":"string"}}],"description":"Retrieve a single marketplace app by ID or slug. Only published apps are visible. Requires the `marketplace_apps` feature to be enabled for the team.","x-mint":{"href":"/api-reference/get-marketplace-app"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"mkapp_x1kg1DegdvZE5","type":"marketplace_apps","attributes":{"name":"OpenClaw","slug":"openclaw","description":"Personal AI agent gateway with messaging integrations","short_description":"Personal AI agent gateway","category":"ai_agents","version":"2026.7.20","system_requirements":{"vcpus":1,"memory_in_gb":2,"storage_in_gb":10,"gpu":false},"deployment_strategy":"user_data","default_operating_system":"ubuntu_24_04_x64_lts","compatible_plans":["vm.small","vm.medium"],"access_instructions":"Connect with: ssh -L 18789:localhost:18789 ubuntu@{{PUBLIC_IPV4}}","upstream_url":"https://github.com/openclaw/openclaw","documentation_url":null,"logo_url":null,"created_at":"2026-07-20T12:00:00+00:00"}}}}},"schema":{"$ref":"#/components/schemas/marketplace_app"}}}},"404":{"description":"Not Found","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/error_object"}}}}}}},"/virtual_machines":{"post":{"summary":"Create VM","operationId":"create-virtual-machine","tags":["Virtual machines"],"security":[{"Bearer":[]}],"parameters":[],"description":"Creates a new Virtual Machine.\n","x-mint":{"href":"/api-reference/create-virtual-machine"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"vm_mw49QDB5qagKb","type":"virtual_machines","attributes":{"name":"my-new-vm","status":"Starting","created_at":"2026-01-14T15:57:13+00:00","primary_ipv4":"192.168.1.50","operating_system":{"name":"Ubuntu 24.04 LTS","slug":"ubuntu_24_04_x64_lts","version":"24.04 x64 LTS","features":{"raid":true,"ssh_keys":true,"user_data":true},"distro":{"name":"Ubuntu","slug":"ubuntu","series":"noble"}},"site":"FRA181","billing":"monthly","plan":{"id":"plan_VE1Wd3VXOXnZJ","name":"g3.h100.large-131"},"specs":{"vcpu":16,"ram":"128 GB","storage":"100 GB","nic":"1 x 1 Gbps","gpu":"1 x NVIDIA H100 Tensor Core GPU"},"team":{"id":"team_zAbb72Zm3VS3N0o89Y48sGXv3mZ","name":"690 Team","slug":"690-team","description":"690 Team","address":"Apt. 922 405 Ondricka Lights, Lake Jennineview, SC 58925-4625","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}},"project":{"id":"proj_GMy1Dbk1ON50m","name":"Lightweight Leather Lamp","slug":"lightweight-leather-lamp","description":"Sleek Wool Plate","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":1,"vlans":0}}}}}}},"schema":{"$ref":"#/components/schemas/virtual_machine"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/virtual_machine_payload"},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"virtual_machines","attributes":{"project":"lightweight-leather-lamp","name":"my-new-vm","billing":"monthly"}}}},"CreatedWithOS":{"summary":"Created with operating system","value":{"data":{"type":"virtual_machines","attributes":{"project":"lightweight-leather-lamp","name":"my-new-vm","billing":"monthly","operating_system":"ubuntu_24_04_x64_lts"}}}},"CreatedWithUserData":{"summary":"Created with user data","value":{"data":{"type":"virtual_machines","attributes":{"project":"lightweight-leather-lamp","name":"my-new-vm","billing":"monthly","user_data":"ud_abc123"}}}}}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_payload"},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"virtual_machines","attributes":{"project":"lightweight-leather-lamp","name":"my-new-vm","billing":"monthly"}}}},"CreatedWithOS":{"summary":"Created with operating system","value":{"data":{"type":"virtual_machines","attributes":{"project":"lightweight-leather-lamp","name":"my-new-vm","billing":"monthly","operating_system":"ubuntu_24_04_x64_lts"}}}},"CreatedWithUserData":{"summary":"Created with user data","value":{"data":{"type":"virtual_machines","attributes":{"project":"lightweight-leather-lamp","name":"my-new-vm","billing":"monthly","user_data":"ud_abc123"}}}}}}},"required":true}},"get":{"summary":"List VMs","operationId":"index-virtual-machine","tags":["Virtual machines"],"parameters":[{"name":"filter[project]","in":"query","required":false,"description":"The project ID or Slug to filter by","schema":{"type":"string"}},{"name":"filter[tags]","in":"query","required":false,"description":"The tag IDs to filter by, separated by comma, e.g. `filter[tags]=tag_1,tag_2` will return VMs with `tag_1` AND `tag_2`.","schema":{"type":"string"}},{"name":"extra_fields[virtual_machines]","in":"query","required":false,"description":"Comma-separated extra attributes that are lazy-loaded. Supported values: `credentials`, `pending_restart`. Example: `extra_fields[virtual_machines]=credentials,pending_restart`.","examples":{"Success":{"value":"credentials"}},"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"description":"Comma-separated sort fields. Prefix a field with `-` for descending order. Supported fields: created_at, name, hostname, status. Example: `sort=status,-created_at` sorts by status ascending, then by creation date descending.","schema":{"type":"string"}},{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"},{"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"},{"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}],"security":[{"Bearer":[]}],"description":"Show all Team's Virtual Machines.\n","x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"},{"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}},"x-mint":{"href":"/api-reference/index-virtual-machine"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"vm_zlkg1DegdvZE5","type":"virtual_machines","attributes":{"name":"my-new-vm","status":"Running","created_at":"2026-01-14T15:57:14+00:00","primary_ipv4":"192.168.1.100","credentials":{"username":"ubuntu","host":"192.168.1.100","password":"secure_password","ssh_keys":[]},"operating_system":null,"site":"MEX192","billing":"hourly","plan":{"id":"plan_059EqYVjDQj8p","name":"g3.l40s.medium-142"},"specs":{"vcpu":null,"ram":null,"storage":null,"nic":"1 x 1 Gbps","gpu":"1 x NVIDIA H100 Tensor Core GPU"},"team":{"id":"team_1ejNe2b5gQiKpxYNxz0bFm2yY38","name":"701 Team","slug":"701-team","description":"701 Team","address":"29825 Klocko Trafficway, Wunschhaven, KS 74888","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}},"project":{"id":"proj_w49QDB2WDagKb","name":"Intelligent Granite Pants","slug":"intelligent-granite-pants","description":"Aerodynamic Copper Bottle","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":1,"vlans":0}}}}]}}},"schema":{"$ref":"#/components/schemas/virtual_machines"}}}},"400":{"description":"Bad Request","content":{"application/vnd.api+json":{"examples":{"UnsupportedSortField":{"value":{"errors":[{"code":"VALIDATION_ERROR","status":"400","title":"Validation Error","detail":"contains unsupported field: region","source":{"parameter":"sort"},"meta":{"attribute":"sort","message":"contains unsupported field: region"}}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}}},"/virtual_machines/{virtual_machine_id}":{"get":{"summary":"Retrieve VM","operationId":"show-virtual-machine","tags":["Virtual machines"],"parameters":[{"name":"virtual_machine_id","in":"path","required":true,"examples":{"Success":{"value":"vm_7vYAZqGBdMQ94"}},"schema":{"type":"string"}},{"name":"extra_fields[virtual_machines]","in":"query","required":false,"description":"Comma-separated extra attributes that are lazy-loaded. Supported values: `credentials`, `pending_restart`. Example: `extra_fields[virtual_machines]=credentials,pending_restart`.","examples":{"Success":{"value":"credentials"}},"schema":{"type":"string"}}],"security":[{"Bearer":[]}],"description":"Show a Virtual Machine.\n","x-mint":{"href":"/api-reference/show-virtual-machine"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"vm_7vYAZqGBdMQ94","type":"virtual_machines","attributes":{"name":"my-new-vm","status":"Starting","created_at":"2026-01-14T15:57:15+00:00","primary_ipv4":"10.0.0.25","operating_system":null,"site":"london-2193","billing":"hourly","plan":{"id":"plan_VE1Wd3VQOXnZJ","name":"c3.small.x86-143"},"specs":{"vcpu":16,"ram":"128 GB","storage":"100 GB","nic":"1 x 1 Gbps","gpu":"1 x NVIDIA H100 Tensor Core GPU"},"team":{"id":"team_GpZboxNev1U2pxpmKwWAc8e01vpp","name":"702 Team","slug":"702-team","description":"702 Team","address":"Suite 729 8171 Albina Forges, Eldridgeberg, CA 26345-3293","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}},"project":{"id":"proj_W6Q2D9ZQOKLpr","name":"Aerodynamic Wool Watch","slug":"aerodynamic-wool-watch","description":"Intelligent Paper Shirt","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":1,"vlans":0}}}}}}},"schema":{"$ref":"#/components/schemas/virtual_machine"}}}}}},"patch":{"summary":"Update VM","operationId":"update-virtual-machine","tags":["Virtual machines"],"security":[{"Bearer":[]}],"parameters":[{"name":"virtual_machine_id","in":"path","required":true,"examples":{"Success":{"value":"vm_7vYAZqGBdMQ94"}},"schema":{"type":"string"}}],"description":"Updates a Virtual Machine's display name (hostname).\n","x-mint":{"href":"/api-reference/update-virtual-machine"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"vm_7vYAZqGBdMQ94","type":"virtual_machines","attributes":{"name":"my-updated-vm","status":"Running","created_at":"2026-01-14T15:57:15+00:00","primary_ipv4":"10.0.0.25","operating_system":null,"site":"london-2193","billing":"hourly","plan":{"id":"plan_VE1Wd3VQOXnZJ","name":"c3.small.x86-143"},"specs":{"vcpu":16,"ram":"128 GB","storage":"100 GB","nic":"1 x 1 Gbps","gpu":"1 x NVIDIA H100 Tensor Core GPU"},"team":{"id":"team_GpZboxNev1U2pxpmKwWAc8e01vpp","name":"702 Team","slug":"702-team","description":"702 Team","address":"Suite 729 8171 Albina Forges, Eldridgeberg, CA 26345-3293","status":"verified","currency":{"id":"cur_AW6Q2D9lqKLpr","code":"BRL","name":"Brazilian Real","currency_id":null}},"project":{"id":"proj_W6Q2D9ZQOKLpr","name":"Aerodynamic Wool Watch","slug":"aerodynamic-wool-watch","description":"Intelligent Paper Shirt","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":0,"prefixes":0,"servers":0,"storages":0,"virtual_machines":1,"vlans":0}}}}}}},"schema":{"$ref":"#/components/schemas/virtual_machine"}}}},"202":{"description":"Accepted. Returned for a vertical upgrade (`plan` change). The resize runs asynchronously: the VM is powered off, resized, and powered back on. The response body reflects the VM at the start of the resize.","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine"}}}},"404":{"description":"Not Found"},"409":{"description":"Conflict. Returned when a resize is already in progress for the VM."},"422":{"description":"Unprocessable Entity"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/virtual_machine_update_payload"},"examples":{"Success":{"summary":"Success","value":{"data":{"type":"virtual_machines","id":"vm_7vYAZqGBdMQ94","attributes":{"name":"my-updated-vm"}}}}}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_update_payload"},"examples":{"Success":{"summary":"Success","value":{"data":{"type":"virtual_machines","id":"vm_7vYAZqGBdMQ94","attributes":{"name":"my-updated-vm"}}}}}}},"required":true}},"delete":{"summary":"Destroy VM","operationId":"destroy-virtual-machine","tags":["Virtual machines"],"security":[{"Bearer":[]}],"parameters":[{"name":"virtual_machine_id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Destroys a Virtual Machine.\n","x-mint":{"href":"/api-reference/destroy-virtual-machine"},"responses":{"204":{"description":"No Content"}}}},"/virtual_machines/{virtual_machine_id}/actions":{"post":{"summary":"Run VM power action","operationId":"create-virtual-machine-action","tags":["Virtual machines"],"security":[{"Bearer":[]}],"parameters":[{"name":"virtual_machine_id","in":"path","required":true,"examples":{"Created":{"value":"vm_5LA73qkjdaJ2o"}},"schema":{"type":"string"}}],"description":"Performs a power action on a given virtual machine:\n- `power_on` - Starts the virtual machine\n- `power_off` - Stops the virtual machine\n- `reboot` - Restarts the virtual machine\n\n`power_on` is never blocked. A `power_off` or `reboot` returns `409 Conflict` when a backup is in progress for the virtual machine.\n","x-mint":{"href":"/api-reference/create-virtual-machine-action"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"act_5LA73qkjdaJ2o","type":"actions","attributes":{"status":"Rebooting virtual machine"}}}}}}}},"409":{"description":"Conflict. Returned when a backup is in progress for the virtual machine and a `power_off` or `reboot` is attempted.","content":{"application/vnd.api+json":{"examples":{"BackupInProgress":{"value":{"errors":[{"code":"BACKUP_IN_PROGRESS","title":"Backup In Progress","status":"409","detail":"A backup is in progress for this virtual machine. Wait for it to finish or delete it before powering off or restarting."}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"422":{"description":"Unprocessable Entity","content":{"application/vnd.api+json":{"examples":{"VmActionRejected":{"value":{"errors":[{"code":"VM_ACTION_REJECTED","title":"Action Rejected","status":"422","detail":"This operation was rejected because of the virtual machine's current state. Please try again later or contact support."}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["virtual_machines"]},"attributes":{"type":"object","properties":{"action":{"type":"string","description":"The action to perform on the virtual machine","enum":["power_on","power_off","reboot"]}},"required":["action"]}},"required":["id","type","attributes"]},"examples":{"Created":{"summary":"Created","value":{"id":"vm_5LA73qkjdaJ2o","type":"virtual_machines","attributes":{"action":"reboot"}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["virtual_machines"]},"attributes":{"type":"object","properties":{"action":{"type":"string","description":"The action to perform on the virtual machine","enum":["power_on","power_off","reboot"]}},"required":["action"]}},"required":["id","type","attributes"]},"examples":{"Created":{"summary":"Created","value":{"id":"vm_5LA73qkjdaJ2o","type":"virtual_machines","attributes":{"action":"reboot"}}}}}},"required":true}}},"/virtual_machines/{virtual_machine_id}/metrics":{"get":{"summary":"Retrieve VM metrics","operationId":"show-virtual-machine-metrics","tags":["Virtual machines"],"security":[{"Bearer":[]}],"parameters":[{"name":"virtual_machine_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"metric","in":"query","required":true,"schema":{"type":"string","enum":["cpu","memory","network","disk"]}},{"name":"range","in":"query","required":false,"schema":{"type":"string","enum":["5m","15m","1h","24h"]}},{"name":"force_refresh","in":"query","required":false,"schema":{"type":"boolean"}}],"description":"Retrieve a time series for a single metric of a Virtual Machine.","x-mint":{"href":"/api-reference/show-virtual-machine-metrics"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_metrics"}}}}}}},"/virtual_machines/{virtual_machine_id}/network_attachments":{"get":{"summary":"List VM network attachments","operationId":"list-virtual-machine-network-attachments","tags":["Virtual machines"],"security":[{"Bearer":[]}],"parameters":[{"name":"virtual_machine_id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Lists the secondary network attachments currently configured for a Virtual Machine.\n","responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_network_attachments"}}}},"404":{"description":"Not Found"}}},"post":{"summary":"Attach a network to a VM","operationId":"create-virtual-machine-network-attachment","tags":["Virtual machines"],"security":[{"Bearer":[]}],"parameters":[{"name":"virtual_machine_id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Attaches a virtual network (VLAN) to a Virtual Machine. Work runs asynchronously and returns 202 Accepted.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/virtual_machine_network_attachment_create_payload"}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_network_attachment_create_payload"}}}},"responses":{"202":{"description":"Accepted","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","example":"accepted"}}}}}}}},"403":{"description":"Forbidden"},"404":{"description":"Not Found"},"422":{"description":"Unprocessable Entity"}}}},"/virtual_machines/{virtual_machine_id}/network_attachments/{id}":{"delete":{"summary":"Detach a network from a VM","operationId":"destroy-virtual-machine-network-attachment","tags":["Virtual machines"],"security":[{"Bearer":[]}],"parameters":[{"name":"virtual_machine_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","required":true,"description":"The VLAN id_hash to detach","schema":{"type":"string"}}],"description":"Detaches a virtual network (VLAN) from a Virtual Machine. Work runs asynchronously and returns 202 Accepted.\n","responses":{"202":{"description":"Accepted","content":{"application/vnd.api+json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","example":"accepted"}}}}}}}},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}},"/virtual_machines/{virtual_machine_id}/backups":{"get":{"summary":"List a VM's backups","operationId":"list-virtual-machine-scoped-backups","tags":["Virtual machine backups"],"security":[{"Bearer":[]}],"parameters":[{"name":"virtual_machine_id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Lists the backups of the given Virtual Machine.\n","responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_backups"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"}}},"post":{"summary":"Create VM backup","operationId":"create-virtual-machine-backup","tags":["Virtual machine backups"],"security":[{"Bearer":[]}],"parameters":[{"name":"virtual_machine_id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Triggers a backup of the given Virtual Machine.\n","responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_backup"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"}}}},"/virtual_machine_backups":{"get":{"summary":"List all VM backups","operationId":"list-virtual-machine-backups","tags":["Virtual machine backups"],"security":[{"Bearer":[]}],"description":"Lists every backup that belongs to the authenticated team.\n","responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_backups"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}},"post":{"summary":"Create VM backup (top-level)","operationId":"create-virtual-machine-backup-top-level","tags":["Virtual machine backups"],"security":[{"Bearer":[]}],"description":"Triggers a backup of the Virtual Machine referenced in the body.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/virtual_machine_backup_payload"}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_backup_payload"}}}},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_backup"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"}}}},"/virtual_machine_backups/{id}":{"get":{"summary":"Get VM backup","operationId":"get-virtual-machine-backup","tags":["Virtual machine backups"],"security":[{"Bearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_backup"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"}}},"delete":{"summary":"Delete VM backup","operationId":"delete-virtual-machine-backup","tags":["Virtual machine backups"],"security":[{"Bearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Archives and deletes a Virtual Machine backup. Work runs asynchronously and returns 202 Accepted. Only `Ready` or `Failed` backups can be deleted, and not while a restore from the backup is in progress.\n","responses":{"202":{"description":"Accepted","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_backup"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"},"409":{"description":"Conflict — another operation on this backup is in progress (`BACKUP_LOCKED`)"},"422":{"description":"Unprocessable Entity — the backup is not deletable (`BACKUP_NOT_DELETABLE`) or a restore is in progress (`RESTORE_IN_PROGRESS`)"}}}},"/virtual_machines/{virtual_machine_id}/backups/{backup_id}/restores":{"get":{"summary":"List a backup's restores","operationId":"list-virtual-machine-scoped-restores","tags":["Virtual machine restores"],"security":[{"Bearer":[]}],"parameters":[{"name":"virtual_machine_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"backup_id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Lists the restores created from the given backup.\n","responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restores"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"}}},"post":{"summary":"Create VM restore","operationId":"create-virtual-machine-restore","tags":["Virtual machine restores"],"security":[{"Bearer":[]}],"parameters":[{"name":"virtual_machine_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"backup_id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Restores a backup into a new Virtual Machine. Optionally accepts a `name` for the restored VM and a target `site` slug to restore into another region.\n","requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restore_payload"}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restore_payload"}}}},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restore"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"},"409":{"description":"Conflict — another operation on this backup is in progress (`BACKUP_LOCKED`)"},"422":{"description":"Unprocessable Entity — the source backup is not ready (`SOURCE_BACKUP_NOT_READY`), no cluster in the requested site can host the restore (`NO_ELIGIBLE_CLUSTER`), or the virtual machine's plan requires GPU passthrough and cannot be restored (`GPU_RESTORE_UNSUPPORTED`)"}}}},"/virtual_machine_backups/{backup_id}/restores":{"get":{"summary":"List a backup's restores (top-level backup path)","operationId":"list-backup-restores","tags":["Virtual machine restores"],"security":[{"Bearer":[]}],"parameters":[{"name":"backup_id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Lists the restores created from the given backup, reached via the top-level backup path.\n","responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restores"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"}}}},"/virtual_machine_restores":{"get":{"summary":"List all VM restores","operationId":"list-virtual-machine-restores","tags":["Virtual machine restores"],"security":[{"Bearer":[]}],"description":"Lists every restore that belongs to the authenticated team.\n","responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restores"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}}}},"post":{"summary":"Create VM restore (flat)","operationId":"create-virtual-machine-restore-flat","tags":["Virtual machine restores"],"security":[{"Bearer":[]}],"description":"Restores the backup referenced in the body into a new Virtual Machine. Optionally accepts a `name` for the restored VM and a target `site` slug to restore into another region.\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restore_payload"}},"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restore_payload"}}}},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restore"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"},"409":{"description":"Conflict — another operation on this backup is in progress (`BACKUP_LOCKED`)"},"422":{"description":"Unprocessable Entity — the source backup is not ready (`SOURCE_BACKUP_NOT_READY`), no cluster in the requested site can host the restore (`NO_ELIGIBLE_CLUSTER`), or the virtual machine's plan requires GPU passthrough and cannot be restored (`GPU_RESTORE_UNSUPPORTED`)"}}}},"/virtual_machine_restores/{id}":{"get":{"summary":"Get VM restore","operationId":"get-virtual-machine-restore","tags":["Virtual machine restores"],"security":[{"Bearer":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_machine_restore"}}}},"403":{"description":"Forbidden","content":{"application/vnd.api+json":{"examples":{"FeatureNotEnabled":{"value":{"errors":[{"code":"FEATURE_NOT_ENABLED","message":"Virtual machine backups are not enabled for this team"}]}}},"schema":{"$ref":"#/components/schemas/error_object"}}}},"404":{"description":"Not Found"}}}},"/virtual_networks":{"get":{"summary":"List VLANs","operationId":"get-virtual-networks","tags":["Private Networks"],"security":[{"Bearer":[]}],"parameters":[{"name":"filter[location]","in":"query","required":false,"description":"The location slug to filter by","schema":{"type":"string"}},{"name":"filter[project]","in":"query","required":false,"description":"The project id or slug to filter by","schema":{"type":"string"}},{"name":"filter[tags]","in":"query","required":false,"description":"The tags ids to filter by, separated by comma, e.g. `filter[tags]=tag_1,tag_2`will return ssh keys with `tag_1` AND `tag_2`","schema":{"type":"string"},"examples":{"Success":{"value":"tag_BZWAJKePr2Fx9kRyyaARImQlXmW,tag_X8yMgb8AZPFrX72lQgrwhBVnPN2"}}},{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"},{"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"},{"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}],"description":"Lists virtual networks assigned to a project\n","x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"},{"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}},"x-mint":{"href":"/api-reference/get-virtual-networks"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"schema":{"$ref":"#/components/schemas/virtual_networks"},"examples":{"Success":{"value":{"data":[{"id":"vlan_AW6Q2D9lqKLpr","type":"virtual_networks","attributes":{"tags":[{"id":"tag_rNk62XV5ewSV52K5oAv5FbENl1R","name":"tag1","description":"Quia quia natus numquam.","color":"#ead6ea"}],"vid":2040,"description":"Consequatur quo aut quia.","created_at":null,"region":{"city":"Sydney 243","country":"Australia 253","site":{"id":"loc_1ZJrdxnWDg4LV","name":"Sydney 243","slug":"SYD204","facility":"Sydney 243"}},"project":{"id":"proj_W6Q2D9ordKLpr","name":"Sleek Leather Hat","slug":"sleek-leather-hat","description":"Enormous Copper Lamp","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":2,"prefixes":0,"servers":1,"storages":0,"virtual_machines":0,"vlans":2}},"assignments_count":1}}],"meta":{}}}}}}}}},"post":{"summary":"Create VLAN","operationId":"create-virtual-network","tags":["Private Networks"],"security":[{"Bearer":[]}],"parameters":[],"description":"Creates a new Virtual Network.\n","x-mint":{"href":"/api-reference/create-virtual-network"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"vlan_3YjJOLQjdvZ87","type":"virtual_networks","attributes":{"tags":[],"vid":2000,"name":"MIA-2000","description":"São Paulo VLAN","site":"MIA","created_at":"2026-01-14T15:57:17+00:00"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/virtual_network"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["virtual_network"]},"attributes":{"type":"object","properties":{"description":{"type":"string"},"site":{"type":"string","description":"Site slug","x-speakeasy-unknown-values":"allow","enum":["ASH","BUE","CHI","DAL","FRA","LAX","LON","MEX","MEX2","MIA","MIA2","NYC","SAO","SAO2","SGP","SYD","TYO","TYO2"]},"project":{"type":"string","description":"Project ID or slug"}},"required":["description","location","project"]}},"required":["id","type","attributes"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"virtual_networks","attributes":{"description":"São Paulo VLAN","site":"MIA","project":"ergonomic-steel-bag"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["virtual_network"]},"attributes":{"type":"object","properties":{"description":{"type":"string"},"site":{"type":"string","description":"Site slug","x-speakeasy-unknown-values":"allow","enum":["ASH","BUE","CHI","DAL","FRA","LAX","LON","MEX","MEX2","MIA","MIA2","NYC","SAO","SAO2","SGP","SYD","TYO","TYO2"]},"project":{"type":"string","description":"Project ID or slug"}},"required":["description","location","project"]}},"required":["id","type","attributes"]}},"required":["data"]},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"virtual_networks","attributes":{"description":"São Paulo VLAN","site":"MIA","project":"ergonomic-steel-bag"}}}}}}},"required":true}}},"/virtual_networks/{vlan_id}":{"patch":{"summary":"Update VLAN","operationId":"update-virtual-network","tags":["Private Networks"],"security":[{"Bearer":[]}],"parameters":[{"name":"vlan_id","in":"path","description":"The Virtual Network ID","required":true,"examples":{"Success":{"value":"vlan_VaNmodjeObE8W"}},"schema":{"type":"string"}}],"description":"Update a Virtual Network.\n","x-mint":{"href":"/api-reference/update-virtual-network"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"vlan_VaNmodjeObE8W","type":"virtual_networks","attributes":{"tags":[{"id":"tag_RjLvG6oe84IAw7BxxEGaFAXK4l4","name":"Tal-Elmar","description":"Placeat non sit velit.","color":"#e5e53e"},{"id":"tag_lpPQ21kXEYfb9az3jRoVIVw4RBk","name":"Great Eagle","description":"Voluptatem aut in corrupti.","color":"#502f50"}],"vid":2040,"name":"cupiditate","description":"Perspiciatis molestiae laborum quae.","site":"SAO","created_at":null}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/virtual_network"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["virtual_networks"]},"attributes":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"}},"description":{"type":"string"}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"vlan_VaNmodjeObE8W","type":"virtual_networks","attributes":{"tags":["tag_RjLvG6oe84IAw7BxxEGaFAXK4l4","tag_lpPQ21kXEYfb9az3jRoVIVw4RBk"]}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["virtual_networks"]},"attributes":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"}},"description":{"type":"string"}}}},"required":["id","type"]}},"required":["data"]},"examples":{"Success":{"summary":"Success","value":{"data":{"id":"vlan_VaNmodjeObE8W","type":"virtual_networks","attributes":{"tags":["tag_RjLvG6oe84IAw7BxxEGaFAXK4l4","tag_lpPQ21kXEYfb9az3jRoVIVw4RBk"]}}}}}}},"required":true}},"delete":{"summary":"Delete VLAN","operationId":"destroy-virtual-network","tags":["Private Networks"],"security":[{"Bearer":[]}],"parameters":[{"name":"vlan_id","in":"path","description":"The virtual network ID","required":true,"schema":{"type":"string"}}],"description":"Delete virtual network\n","x-mint":{"href":"/api-reference/destroy-virtual-network"},"responses":{"204":{"description":"No Content"}}},"get":{"summary":"Retrieve VLAN","operationId":"get-virtual-network","tags":["Private Networks"],"security":[{"Bearer":[]}],"parameters":[{"name":"vlan_id","in":"path","required":true,"description":"Virtual Network ID","examples":{"Success":{"value":"vlan_W6Q2D9ordKLpr"}},"schema":{"type":"string"}}],"description":"Retrieve a Virtual Network.\n","x-mint":{"href":"/api-reference/get-virtual-network"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"vlan_W6Q2D9ordKLpr","type":"virtual_networks","attributes":{"tags":[],"vid":2040,"description":"Testing vlans","created_at":null,"region":{"city":"São Paulo 255","country":"Mexico 268","site":{"id":"loc_1R3zq28EOWxyn","name":"São Paulo 255","slug":"SAO","facility":"São Paulo 255"}},"project":{"id":"proj_LA73qkknqaJ2o","name":"Incredible Wool Plate","slug":"incredible-wool-plate","description":"Heavy Duty Wooden Coat","billing_type":"Normal","billing_method":"Normal","bandwidth_alert":false,"environment":null,"billing":{"subscription_id":null,"type":"Normal","method":"Normal"},"stats":{"databases":0,"ip_addresses":2,"prefixes":0,"servers":1,"storages":0,"virtual_machines":0,"vlans":0}},"assignments_count":1}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/virtual_network"}}}}}}},"/virtual_networks/assignments":{"get":{"summary":"List VLAN assignments","operationId":"get-virtual-networks-assignments","tags":["Private Networks"],"parameters":[{"name":"filter[server]","in":"query","required":false,"description":"The server ID to filter by","schema":{"type":"string"}},{"name":"filter[vid]","in":"query","required":false,"description":"The vlan ID to filter by","schema":{"type":"string"}},{"name":"filter[virtual_network_id]","in":"query","required":false,"description":"The virtual network ID to filter by","schema":{"type":"string"}},{"name":"page[size]","in":"query","schema":{"type":"integer","minimum":1,"default":20},"required":false,"description":"Number of items to return per page"},{"name":"page[number]","in":"query","schema":{"type":"integer","minimum":1,"default":1},"required":false,"description":"Page number to return (starts at 1)"},{"name":"stats[total]","in":"query","schema":{"type":"string"},"required":false,"description":"Request aggregate stats in the response `meta`. Use `count` to get the total number of records, returned as `meta.stats.total.count`."}],"security":[{"Bearer":[]}],"description":"Returns a list of all servers assigned to virtual networks.\n","x-speakeasy-pagination":{"type":"offsetLimit","inputs":[{"name":"page[number]","in":"parameters","type":"page"},{"name":"page[size]","in":"parameters","type":"limit"}],"outputs":{"results":"$.data"}},"x-mint":{"href":"/api-reference/get-virtual-networks-assignments"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"vnasg_6VE1Wd37dXnZJ","type":"virtual_network_assignment","attributes":{"virtual_network_id":"vlan_7vYAZqGBdMQ94","vid":1,"description":"West Inc","status":"connected","server":{"id":"sv_GnzRD5BYOM5yw","hostname":"db","label":"BRC01","locked":false,"status":"unknown"}}},{"id":"vnasg_VaNmodjeObE8W","type":"virtual_network_assignment","attributes":{"virtual_network_id":"vlan_r0MK4O4kDa95w","vid":2,"description":"Reynolds-Steuber","status":"connecting","server":{"id":"sv_KXgRdRLKDv9k5","hostname":"api","label":"BRC02","locked":false,"status":"unknown"}}}],"meta":{}}}},"schema":{"$ref":"#/components/schemas/virtual_network_assignments"}}}}}},"post":{"summary":"Assign VLAN","operationId":"assign-server-virtual-network","tags":["Private Networks"],"security":[{"Bearer":[]}],"parameters":[],"x-mint":{"href":"/api-reference/assign-server-virtual-network"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"vnasg_LGXPdWQ8DnNWk","type":"virtual_network_assignment","attributes":{"virtual_network_id":"vlan_Z8rodmpGO1jLB","vid":3,"server_id":"sv_5xyZOn5vDWM0l","description":"my vlan","status":"connecting"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/virtual_network_assignment"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["virtual_network_assignment"]},"attributes":{"type":"object","properties":{"server_id":{"type":"string"},"virtual_network_id":{"type":"string"}},"required":["server_id","virtual_network_id"]}},"required":["type"]}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"virtual_network_assignment","attributes":{"server_id":"sv_5xyZOn5vDWM0l","virtual_network_id":"vlan_Z8rodmpGO1jLB"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["virtual_network_assignment"]},"attributes":{"type":"object","properties":{"server_id":{"type":"string"},"virtual_network_id":{"type":"string"}},"required":["server_id","virtual_network_id"]}},"required":["type"]}}},"examples":{"Created":{"summary":"Created","value":{"data":{"type":"virtual_network_assignment","attributes":{"server_id":"sv_5xyZOn5vDWM0l","virtual_network_id":"vlan_Z8rodmpGO1jLB"}}}}}}},"required":true}}},"/virtual_networks/assignments/{assignment_id}":{"delete":{"summary":"Delete VLAN assignment","operationId":"delete-virtual-networks-assignments","tags":["Private Networks"],"parameters":[{"name":"assignment_id","in":"path","required":true,"schema":{"type":"string"}}],"security":[{"Bearer":[]}],"description":"Allow you to remove a Virtual Network assignment.\n","x-mint":{"href":"/api-reference/delete-virtual-networks-assignments"},"responses":{"204":{"description":"No Content"}}}},"/vpn_sessions":{"get":{"summary":"List VPN sessions","operationId":"get-vpn-sessions","tags":["VPN Sessions"],"security":[{"Bearer":[]}],"parameters":[{"name":"filter[location]","in":"query","schema":{"type":"string","x-speakeasy-unknown-values":"allow","enum":["ASH","BUE","CHI","DAL","FRA","LAX","LON","MEX","MEX2","MIA","MIA2","NYC","SAO","SAO2","SGP","SYD","TYO","TYO2"]},"required":false,"examples":{"Success":{"value":"SAO"}}}],"x-mint":{"href":"/api-reference/get-vpn-sessions"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":[{"id":"vpn_mw49QDB5qagKb","type":"vpn_sessions","attributes":{"user_name":"Alvaro","port":"8443","host":"fw04-mh1.maxi.host","region":{"city":"São Paulo 275","country":"United States 288","site":{"id":"loc_kjQwdE2bqYNVP","name":"São Paulo 275","slug":"SAO","facility":"São Paulo 275"}},"expires_at":"2026-01-14T15:58:19+00:00","created_at":"2026-01-14T15:57:19+00:00","updated_at":"2026-01-14T15:57:19+00:00"}}],"meta":{}}}},"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/vpn_session_data_with_password"}},"meta":{"type":"object"}}}}}}}},"post":{"summary":"Create VPN session","operationId":"post-vpn-session","tags":["VPN Sessions"],"security":[{"Bearer":[]}],"parameters":[],"description":"Creates a new VPN Session.\n`NOTE:` The VPN credentials are only listed ONCE upon creation. They can however be refreshed or deleted.\n","x-mint":{"href":"/api-reference/post-vpn-session"},"responses":{"201":{"description":"Created","content":{"application/vnd.api+json":{"examples":{"Created":{"value":{"data":{"id":"vpn_VLMmAD8EOwop2","type":"vpn_sessions","attributes":{"user_name":"Cameron","password":"8EqcGL2tsQngWe","port":"8443","host":"fw04-mh1.maxi.host","region":{"city":"São Paulo 277","country":"Brazil 290","site":{"id":"loc_VE1Wd3wQdXnZJ","name":"São Paulo 277","slug":"SAO","facility":"São Paulo 277"}},"expires_at":"2026-01-14T15:58:20+00:00","created_at":"2026-01-14T15:57:20+00:00","updated_at":"2026-01-14T15:57:20+00:00"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/vpn_session_with_password"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"properties":{"type":{"type":"string","enum":["vpn_sessions"]},"attributes":{"type":"object","properties":{"site":{"type":"string","x-speakeasy-unknown-values":"allow","enum":["ASH","BUE","CHI","DAL","FRA","LAX","LON","MEX","MEX2","MIA","MIA2","NYC","SAO","SAO2","SGP","SYD","TYO","TYO2"]},"server_id":{"type":"string"}},"required":["site","server_id"]}}}}},"examples":{"Created":{"summary":"Created","value":{"data":{"attributes":{"site":"SAO","server_id":"sv_LMmAD8wyqwop2"}}}}}},"application/vnd.api+json":{"schema":{"type":"object","properties":{"data":{"properties":{"type":{"type":"string","enum":["vpn_sessions"]},"attributes":{"type":"object","properties":{"site":{"type":"string","x-speakeasy-unknown-values":"allow","enum":["ASH","BUE","CHI","DAL","FRA","LAX","LON","MEX","MEX2","MIA","MIA2","NYC","SAO","SAO2","SGP","SYD","TYO","TYO2"]},"server_id":{"type":"string"}}}}}}},"examples":{"Created":{"summary":"Created","value":{"data":{"attributes":{"site":"SAO","server_id":"sv_LMmAD8wyqwop2"}}}}}}},"required":true}}},"/vpn_sessions/{vpn_session_id}/refresh_password":{"patch":{"summary":"Refresh VPN session","operationId":"put-vpn-session","tags":["VPN Sessions"],"security":[{"Bearer":[]}],"parameters":[{"name":"vpn_session_id","in":"path","required":true,"examples":{"Success":{"value":"vpn_pRMLydp0dQKr1"}},"schema":{"type":"string"}}],"description":"Refreshing an existing VPN Session will create new credentials for that session\n","x-mint":{"href":"/api-reference/put-vpn-session"},"responses":{"200":{"description":"Success","content":{"application/vnd.api+json":{"examples":{"Success":{"value":{"data":{"id":"vpn_pRMLydp0dQKr1","type":"vpn_sessions","attributes":{"user_name":"Alexis","password":"34xr0yTqaTrNyJFI","port":"8443","host":"fw04-mh1.maxi.host","region":{"city":"São Paulo 279","country":"Germany 292","site":{"id":"loc_3YjJOLexdvZ87","name":"São Paulo 279","slug":"SAO","facility":"São Paulo 279"}},"expires_at":"2026-01-14T15:58:20+00:00","created_at":"2026-01-14T15:57:20+00:00","updated_at":"2026-01-14T15:57:20+00:00"}},"meta":{}}}},"schema":{"$ref":"#/components/schemas/vpn_session_with_password"}}}}}}},"/vpn_sessions/{vpn_session_id}":{"delete":{"summary":"Delete VPN session","operationId":"delete-vpn-session","tags":["VPN Sessions"],"security":[{"Bearer":[]}],"parameters":[{"name":"vpn_session_id","in":"path","required":true,"schema":{"type":"string"}}],"description":"Deletes an existing VPN Session.\n","x-mint":{"href":"/api-reference/delete-vpn-session"},"responses":{"204":{"description":"No Content"}}}}},"components":{"schemas":{"traffic_quota":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["traffic_quota"]},"attributes":{"type":"object","properties":{"quota_per_project":{"type":"array","items":{"type":"object","properties":{"project_id":{"type":"string"},"project_slug":{"type":"string"},"price":{"type":"integer","nullable":true},"billing_method":{"type":"string"},"quota_per_region":{"type":"array","items":{"type":"object","properties":{"region_id":{"type":"string"},"region_slug":{"type":"string"},"price":{"type":"integer","nullable":true},"quota_in_tb":{"type":"object","properties":{"granted":{"type":"integer"},"additional":{"type":"integer"},"total":{"type":"integer"}}},"quota_in_mbps":{"type":"object","properties":{"granted":{"type":"integer"},"additional":{"type":"integer"},"total":{"type":"integer"}}}}}}}}}}}}},"meta":{"type":"object"}}},"traffic":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["traffic"]},"attributes":{"type":"object","properties":{"from_date":{"type":"integer","description":"The start timestamp. Must be a unix timestamp"},"to_date":{"type":"integer","description":"The end timestamp. Must be a unix timestamp"},"regions":{"type":"array","items":{"type":"object","properties":{"region_slug":{"type":"string"},"total_inbound_gb":{"type":"integer","description":"Value in GB"},"total_outbound_gb":{"type":"integer","description":"Value in GB"},"total_inbound_95th_percentile_mbps":{"type":"number","description":"The 95th percentile of inbound bandwidth for this region. Value in Mbps"},"total_outbound_95th_percentile_mbps":{"type":"number","description":"The 95th percentile of outbound bandwidth for this region. Value in Mbps"},"data":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","description":"The datetime of the day"},"inbound_gb":{"type":"integer","description":"Value in GB"},"outbound_gb":{"type":"integer","description":"Value in GB"},"avg_outbound_speed_mbps":{"type":"number","description":"Value in Mbps"},"avg_inbound_speed_mbps":{"type":"number","description":"Value in Mbps"},"outbound_speed_mbps":{"type":"number","description":"Value in Mbps"},"inbound_speed_mbps":{"type":"number","description":"Value in Mbps"}}}}}}},"total_inbound_gb":{"type":"integer","description":"Value in GB"},"total_outbound_gb":{"type":"integer","description":"Value in GB"},"total_inbound_95th_percentile_mbps":{"type":"number","description":"The 95th percentile of inbound bandwidth across all regions. This is a global percentile, not a sum of regional percentiles. Value in Mbps"},"total_outbound_95th_percentile_mbps":{"type":"number","description":"The 95th percentile of outbound bandwidth across all regions. This is a global percentile, not a sum of regional percentiles. Value in Mbps"}}}}},"meta":{"type":"object"}}},"error_object":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","nullable":true},"status":{"type":"string"},"title":{"type":"string"},"detail":{"type":"string"},"source":{"type":"object","properties":{"pointer":{"type":"string"},"parameter":{"type":"string"}}},"meta":{"type":"object"}}}}}},"project":{"type":"object","properties":{"id":{"type":"string","description":"The project ID"},"type":{"type":"string","enum":["projects"]},"attributes":{"type":"object","properties":{"tags":{"type":"array","description":"The tags assigned to the project","items":{"type":"object"}},"name":{"type":"string","description":"The project name"},"slug":{"type":"string","description":"A unique project identifier"},"description":{"type":"string","nullable":true,"description":"The project description"},"billing_type":{"type":"string","nullable":true,"x-speakeasy-unknown-values":"allow","enum":["Yearly","Monthly","Hourly","Normal","Custom"]},"billing_method":{"type":"string","nullable":true,"x-speakeasy-unknown-values":"allow","enum":["Normal","95th percentile"]},"cost":{"type":"string","nullable":true},"bandwidth_alert":{"type":"boolean","nullable":true,"description":"Whether bandwidth quota alerts are enabled for the project"},"environment":{"type":"string","nullable":true,"x-speakeasy-unknown-values":"allow","enum":["Development","Staging","Production"]},"provisioning_type":{"type":"string","nullable":true,"description":"The project provisioning model, either on_demand (pay-as-you-go, hourly or monthly billing) or reserved (annual contract with yearly billing). Defaults to on_demand."},"stats":{"type":"object","properties":{"databases":{"type":"number","description":"The number of database servers assigned to the project"},"ip_addresses":{"type":"number","description":"The number of IP addresses assigned to the project"},"prefixes":{"type":"number","description":"The IP address prefixes in the project"},"servers":{"type":"number","description":"The number of servers assigned to the project"},"storages":{"type":"number","description":"The number of storages assigned to the project"},"virtual_machines":{"type":"number","description":"The number of active virtual machines assigned to the project"},"vlans":{"type":"number","description":"The number of VLANs assigned to the project"}}},"billing":{"type":"object","properties":{"subscription_id":{"type":"string"},"type":{"type":"string"},"method":{"type":"string"}}},"team":{"$ref":"#/components/schemas/team_include"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"projects":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/project"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}},"project_include":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string","nullable":true},"billing_type":{"type":"string","nullable":true},"provisioning_type":{"type":"string","nullable":true},"billing_method":{"type":"string","nullable":true},"bandwidth_alert":{"type":"boolean"},"environment":{"type":"string","nullable":true},"billing":{"type":"object","properties":{"subscription_id":{"type":"string","nullable":true},"type":{"type":"string"},"method":{"type":"string"}}},"stats":{"type":"object","properties":{"databases":{"type":"integer"},"ip_addresses":{"type":"integer"},"prefixes":{"type":"integer"},"servers":{"type":"integer"},"storages":{"type":"integer"},"virtual_machines":{"type":"integer"},"vlans":{"type":"integer"}}}}},"ip_address":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ip_address_data"},"meta":{"type":"object"}}},"ip_address_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["ip_addresses"]},"attributes":{"type":"object","properties":{"address":{"type":"string"},"cidr":{"type":"string","nullable":true},"family":{"type":"string","enum":["IPv4","IPv6"]},"gateway":{"type":"string","nullable":true},"netmask":{"type":"string"},"type":{"type":"string","enum":["Public","Private","Elastic"]},"public":{"type":"boolean"},"management":{"type":"boolean"},"additional":{"type":"boolean"},"project":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}},"region":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}}}},"available":{"type":"boolean"},"assignment":{"type":"object","description":"Server assignment information. Returns an empty object when the IP is not assigned to an active server (e.g., when the server is decommissioning or deleted). The hostname is null when the assigned server has no hostname set.","properties":{"server_id":{"type":"string"},"hostname":{"type":"string","nullable":true},"assigned_at":{"type":"string","nullable":true}}},"elastic":{"type":"object","description":"Elastic IP details. Returns an empty object when the IP is not an Elastic IP.","properties":{"id":{"type":"string"},"mode":{"type":"string"},"status":{"type":"string"}}},"created_at":{"type":"string","format":"date-time","nullable":true}}}}},"ip_addresses":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ip_address_data"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}},"virtual_network":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/virtual_network_data"},"meta":{"type":"object"}}},"virtual_network_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["virtual_networks"]},"attributes":{"type":"object","properties":{"vid":{"type":"integer","description":"vlan ID of the virtual network"},"name":{"type":"string","description":"Name of the virtual network"},"description":{"type":"string","description":"Description of the virtual network"},"project":{"$ref":"#/components/schemas/project_include"},"region":{"type":"object","properties":{"city":{"type":"string"},"country":{"type":"string"},"site":{"type":"object","properties":{"id":{"type":"string"},"facility":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}}}},"created_at":{"type":"string","format":"date-time","nullable":true},"assignments_count":{"type":"integer","description":"Amount of devices assigned to the virtual network"},"tags":{"type":"array","description":"Tags associated with the virtual network","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"color":{"type":"string","nullable":true}}}}}}}},"virtual_networks":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/virtual_network_data"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}},"virtual_network_assignment":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/virtual_network_assignment_data"},"meta":{"type":"object"}}},"virtual_network_assignment_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["virtual_network_assignment"]},"attributes":{"type":"object","properties":{"virtual_network_id":{"type":"string"},"vid":{"type":"integer"},"description":{"type":"string"},"status":{"type":"string"},"server":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"label":{"type":"string"},"locked":{"type":"boolean"},"status":{"type":"string"}}}}}}},"virtual_network_assignments":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/virtual_network_assignment_data"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}},"ipmi_session":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["ipmi_sessions"]},"attributes":{"type":"object","properties":{"ipmi_address":{"type":"string","description":"The IPMI IP Address"},"ipmi_url":{"type":"string","nullable":true,"description":"The IPMI URL for direct access"},"ipmi_username":{"type":"string","description":"The IPMI username"},"ipmi_password":{"type":"string","description":"The IPMI password"}}}}}}},"kubernetes_cluster":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/kubernetes_cluster_data"}}},"kubernetes_cluster_create_response":{"type":"object","description":"Response schema for cluster creation (minimal fields returned during provisioning)","properties":{"data":{"type":"object","properties":{"id":{"type":"string","description":"The cluster ID in hashed format (kc_<hash>)"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"The cluster name"},"status":{"type":"string","description":"The cluster status (always 'provisioning' on creation)"},"control_plane_endpoint":{"type":"string","nullable":true,"description":"The URL endpoint for the Kubernetes API server"}}}}}}},"kubernetes_cluster_summary_data":{"type":"object","description":"Summary representation of a cluster (used in list responses)","properties":{"id":{"type":"string","description":"The cluster ID in hashed format (kc_<hash>)"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"The cluster name"},"phase":{"type":"string","description":"The current phase of the cluster lifecycle.","x-speakeasy-unknown-values":"allow","enum":["Pending","Provisioning","Provisioned","Upgrading","Deleting","Failed","Unknown"]},"ready":{"type":"boolean","description":"Whether the cluster is ready to accept workloads"},"infrastructure_ready":{"type":"boolean","description":"Whether the underlying infrastructure is ready"},"control_plane_ready":{"type":"boolean","description":"Whether the control plane is ready"},"message":{"type":"string","description":"Human-readable status message describing the current provisioning state"},"steps":{"type":"array","description":"Provisioning progress steps for dashboard display","items":{"type":"object","properties":{"name":{"type":"string","description":"Step identifier","enum":["infrastructure","control_plane","workers"]},"status":{"type":"string","description":"Current status of this step","enum":["pending","in_progress","completed"]}}}},"last_status_change":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the most recent status condition change"},"created_at":{"type":"string","format":"date-time","description":"When the cluster was created"}}}}},"kubernetes_cluster_data":{"type":"object","properties":{"id":{"type":"string","description":"The cluster ID in hashed format (kc_<hash>)"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"The cluster name"},"phase":{"type":"string","description":"The current phase of the cluster lifecycle. 'Upgrading' is reported while a Kubernetes version upgrade is rolling through the cluster.","x-speakeasy-unknown-values":"allow","enum":["Pending","Provisioning","Provisioned","Upgrading","Deleting","Failed","Unknown"]},"ready":{"type":"boolean","description":"Whether the cluster is ready to accept workloads"},"control_plane_endpoint":{"type":"string","nullable":true,"description":"The URL endpoint for the Kubernetes API server"},"kubeconfig_url":{"type":"string","nullable":true,"description":"The URL to retrieve the kubeconfig file"},"location":{"type":"string","nullable":true,"description":"The site/region where the cluster is deployed. May be null when the cluster's resources are not fully available (e.g., incomplete provisioning or deletion in progress)."},"load_balancer_ips":{"type":"array","description":"IP addresses assigned to the cluster's load balancer","items":{"type":"string"}},"kubernetes_version":{"type":"string","nullable":true,"description":"The Kubernetes version running on the cluster. May be null when the control plane resource is not fully available (e.g., incomplete provisioning or deletion in progress)."},"version_status":{"type":"string","description":"The cluster's version status relative to available upgrades","enum":["up_to_date","upgrade_available","unsupported","unknown"]},"available_upgrade":{"type":"string","nullable":true,"description":"The next available Kubernetes version for upgrade. Null if the cluster is already on the latest version, or if version status is unknown or unsupported."},"created_at":{"type":"string","format":"date-time","description":"When the cluster was created"},"plan":{"type":"string","nullable":true,"description":"The machine plan slug for control plane nodes. May be null when the control plane machine template is not available (e.g., incomplete provisioning or deletion in progress)."},"worker_plan":{"type":"string","nullable":true,"description":"The machine plan slug for worker nodes. Null if no workers exist."},"control_plane_count":{"type":"integer","description":"Number of control plane node replicas"},"worker_count":{"type":"integer","description":"Number of worker node replicas. Returns 0 if no workers exist."},"control_plane":{"type":"object","nullable":true,"description":"Control plane status information","properties":{"ready":{"type":"boolean"},"replicas":{"type":"integer"},"ready_replicas":{"type":"integer"}}},"workers":{"type":"object","nullable":true,"description":"Worker nodes status information","properties":{"replicas":{"type":"integer"},"ready_replicas":{"type":"integer"},"available_replicas":{"type":"integer"}}},"worker_status":{"type":"string","nullable":true,"description":"Current status of worker nodes. 'idle' when 0 workers, 'ready' when all workers are ready, 'scaling' when workers are being provisioned/removed, 'upgrading' while a Kubernetes version upgrade is rolling through the workers, 'error' when a worker has failed.","x-speakeasy-unknown-values":"allow","enum":["idle","ready","scaling","upgrading","error"]},"control_plane_status":{"type":"string","description":"Current status of control plane nodes. 'ready' when control plane is operational, 'scaling' when nodes are being provisioned/removed, 'upgrading' while a Kubernetes version upgrade is rolling through the control plane, 'error' when a control plane node has failed.","x-speakeasy-unknown-values":"allow","enum":["ready","scaling","upgrading","error"]},"infrastructure_ready":{"type":"boolean","description":"Whether the underlying infrastructure is ready"},"control_plane_ready":{"type":"boolean","description":"Whether the control plane is ready"},"message":{"type":"string","description":"Human-readable status message describing the current provisioning state"},"steps":{"type":"array","description":"Provisioning progress steps for dashboard display","items":{"type":"object","properties":{"name":{"type":"string","description":"Step identifier","enum":["infrastructure","control_plane","workers"]},"status":{"type":"string","description":"Current status of this step","enum":["pending","in_progress","completed"]}}}},"last_status_change":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the most recent status condition change"},"failure_message":{"type":"string","nullable":true,"description":"Error message if the cluster has failed"},"failure_reason":{"type":"string","nullable":true,"description":"Reason code for cluster failure"},"nodes":{"type":"array","description":"List of nodes (servers) in the cluster","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the node (machine name)"},"name":{"type":"string","description":"Name of the node"},"hostname":{"type":"string","nullable":true,"description":"Hostname of the node"},"server_id":{"type":"string","nullable":true,"description":"The Latitude server ID associated with this node"},"type":{"type":"string","description":"The role of this node in the cluster","enum":["control_plane","worker"]},"status":{"type":"string","description":"Current status of the node","enum":["ready","pending","failed","deleting"]},"ip":{"type":"string","nullable":true,"description":"Primary IP address (external if available, otherwise internal)"},"internal_ip":{"type":"string","nullable":true,"description":"Internal/private IP address"},"external_ip":{"type":"string","nullable":true,"description":"External/public IP address"}}}},"project":{"type":"object","description":"The project this cluster belongs to","properties":{"id":{"type":"string","description":"The project ID"},"name":{"type":"string","description":"The project name"},"slug":{"type":"string","description":"The project slug"}}}}}}},"kubernetes_clusters":{"type":"object","description":"Response schema for listing clusters (uses summary representation)","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/kubernetes_cluster_summary_data"}}}},"kubernetes_available_versions":{"type":"object","description":"Response schema for available Kubernetes versions","properties":{"data":{"type":"array","items":{"type":"object","properties":{"latest":{"type":"string","description":"The latest full Kubernetes version string for this minor version (e.g., v1.35.3+rke2r1)"},"minor":{"type":"string","description":"The minor version number (e.g., 1.35)"}}}}}},"kubernetes_cluster_kubeconfig":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","description":"The cluster name"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"cluster_name":{"type":"string","description":"The cluster name"},"kubeconfig":{"type":"string","description":"The kubeconfig YAML content for connecting to the cluster"}}}}}}},"create_kubernetes_cluster":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["type","attributes"],"properties":{"type":{"type":"string","enum":["kubernetes_clusters"]},"attributes":{"type":"object","required":["project_id","site","plan"],"properties":{"name":{"type":"string","nullable":true,"description":"The cluster name. Must follow Kubernetes naming rules: lowercase alphanumeric or hyphens, must start and end with alphanumeric, max 63 characters. Auto-generated if omitted."},"project_id":{"type":"string","description":"The project ID where the cluster will be created"},"site":{"type":"string","description":"The site/region code where to deploy the cluster (e.g., SAN3)"},"plan":{"type":"string","description":"The machine plan for control plane nodes (e.g., c2-small-x86)"},"ssh_keys":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Array of SSH key IDs to use for node access. All keys must exist and belong to your team."},"worker_plan":{"type":"string","nullable":true,"description":"The machine plan for worker nodes. Defaults to the control plane plan if not specified."},"kubernetes_version":{"type":"string","nullable":true,"description":"The Kubernetes version to install. Defaults to v1.34.3+rke2r1."},"control_plane_count":{"type":"integer","nullable":true,"description":"Number of control plane nodes. Defaults to 1."},"worker_count":{"type":"integer","nullable":true,"description":"Number of worker nodes. Defaults to 1."},"operating_system":{"type":"string","nullable":true,"description":"The operating system for the nodes. Defaults to ubuntu_24_04_x64_lts."}}}}}}},"update_kubernetes_cluster":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["type","attributes"],"properties":{"type":{"type":"string","enum":["kubernetes_clusters"]},"attributes":{"type":"object","description":"Provide one of: worker_count, control_plane_count (for scaling), or kubernetes_version (for upgrades). These are mutually exclusive operations.","properties":{"worker_count":{"type":"integer","description":"Desired number of worker nodes. Must be between 0 and 10. Mutually exclusive with control_plane_count and kubernetes_version.","minimum":0,"maximum":10},"control_plane_count":{"type":"integer","description":"Desired number of control plane nodes. Minimum 1. Mutually exclusive with worker_count and kubernetes_version.","minimum":1},"worker_plan":{"type":"string","nullable":true,"description":"Plan slug for worker nodes. Required when scaling from 0 workers. Ignored when scaling an existing deployment."},"kubernetes_version":{"type":"string","description":"Target Kubernetes version for upgrade (e.g., v1.35.0+rke2r1). Mutually exclusive with scaling operations. Must be one minor version higher than current."}}}}}}},"kubernetes_cluster_update_response":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["kubernetes_clusters"]},"id":{"type":"string","description":"The cluster ID (format: kc_<hash>)"},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"The cluster name"},"status":{"type":"string","enum":["scaling","upgrading","unchanged"],"description":"The update status. 'scaling' indicates nodes are being added or removed. 'upgrading' indicates a version upgrade is in progress. 'unchanged' indicates no change was needed."},"worker_count":{"type":"integer","nullable":true,"description":"The requested number of worker nodes. Present when scaling workers."},"control_plane_count":{"type":"integer","nullable":true,"description":"The requested number of control plane nodes. Present when scaling control plane."},"kubernetes_version":{"type":"string","nullable":true,"description":"The target Kubernetes version. Present when upgrading version."}}}}}}},"lazy_sideload":{"type":"object","properties":{"meta":{"type":"object","properties":{"included":{"type":"boolean"}}}}},"pagination_meta":{"type":"object","properties":{"stats":{"type":"object","properties":{"total":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of records, returned when `stats[total]=count` is requested"}}}}}}},"region":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["regions"]},"attributes":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"facility":{"type":"string","nullable":true},"country":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"}}},"type":{"type":"string","nullable":true},"features":{"type":"array","items":{"type":"string","example":"public_network"},"description":"Location capabilities available at this location (e.g. `public_network`, `elastic_ip_bgp`)."},"network_group":{"type":"string","nullable":true,"description":"The location's network group slug (e.g. `TYO`, `LON2`)."}}}}}}},"region_resource_data":{"type":"object","properties":{"city":{"type":"string"},"country":{"type":"string"},"site":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"facility":{"type":"string"}}}}},"server_region_resource_data":{"type":"object","properties":{"city":{"type":"string"},"country":{"type":"string"},"site":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"facility":{"type":"string"},"rack_id":{"type":"string"}}}}},"regions":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["regions"]},"attributes":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"facility":{"type":"string","nullable":true},"country":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"}}},"type":{"type":"string","nullable":true},"features":{"type":"array","items":{"type":"string","example":"public_network"},"description":"Location capabilities available at this location (e.g. `public_network`, `elastic_ip_bgp`)."},"network_group":{"type":"string","nullable":true,"description":"The location's network group slug (e.g. `TYO`, `LON2`)."}}}}}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}},"operating_systems":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/operating_system_data"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}},"operating_system_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["operating_system"]},"attributes":{"type":"object","properties":{"features":{"type":"object","properties":{"raid":{"type":"boolean"},"ssh_keys":{"type":"boolean"},"user_data":{"type":"boolean"},"accelerate":{"type":"boolean"},"rescue":{"type":"boolean"},"workflow":{"type":"boolean"}}},"name":{"type":"string"},"slug":{"type":"string"},"distro":{"type":"string"},"user":{"type":"string"},"version":{"type":"string"},"provisionable_on":{"type":"array","items":{"type":"string"}}}}}},"events":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/event_data"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}},"event_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["events"]},"attributes":{"type":"object","properties":{"action":{"type":"string"},"created_at":{"type":"string"},"author":{"type":"object","properties":{"id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true}}},"project":{"type":"object","properties":{"id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true}}},"team":{"type":"object","properties":{"id":{"type":"string","nullable":true},"name":{"type":"string","nullable":true}}},"target":{"type":"object","properties":{"id":{"type":"string","nullable":true},"name":{"type":"string"}}},"properties":{"type":"object","nullable":true,"description":"Additional event-specific data"}}}}},"elastic_ip":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/elastic_ip_data"},"meta":{"type":"object"}}},"elastic_ip_data":{"type":"object","properties":{"id":{"type":"string","nullable":true,"description":"The Elastic IP ID. May be null during initial provisioning."},"type":{"type":"string","enum":["elastic_ips"]},"attributes":{"type":"object","properties":{"address":{"type":"string","description":"The IP address"},"family":{"type":"string","enum":["IPv4"],"description":"The IP address family"},"prefix_length":{"type":"integer","description":"The prefix length (e.g., 32 for a single IP)"},"mode":{"type":"string","enum":["routed","bgp"],"description":"The routing mode for this Elastic IP"},"status":{"type":"string","enum":["pending","configuring","active","moving","releasing","error"],"description":"The current status of the Elastic IP"},"created_at":{"type":"string","format":"date-time","description":"The timestamp when the Elastic IP was created"},"server":{"type":"object","nullable":true,"description":"The server this Elastic IP is assigned to. Returns null when the Elastic IP is not assigned to a server or when the assigned server is not active (e.g., decommissioning or deleted).","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"primary_ipv4":{"type":"string"},"operating_system":{"type":"string","nullable":true}}},"project":{"type":"object","description":"The project this Elastic IP belongs to","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}},"region":{"type":"object","nullable":true,"description":"The region where this Elastic IP is located","properties":{"id":{"type":"string","description":"The region ID"},"name":{"type":"string","description":"The region name"},"location":{"type":"object","description":"The site/location within the region","properties":{"id":{"type":"string","description":"The site ID"},"name":{"type":"string","description":"The site name"},"slug":{"type":"string","description":"The site slug"}}}}}}}}},"elastic_ips":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/elastic_ip_data"}},"meta":{"type":"object"}}},"create_elastic_ip":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["elastic_ips"]},"attributes":{"type":"object","properties":{"mode":{"type":"string","enum":["routed","bgp"],"default":"routed","description":"How the elastic IP is delivered. Defaults to routed"},"server_id":{"type":"string","description":"The server to assign the elastic IP to. Required in routed mode and rejected in bgp mode, which uses server_ids"},"project_id":{"type":"string","description":"The project to create the elastic IP in"},"server_ids":{"type":"array","items":{"type":"string"},"description":"The servers that announce the elastic IP over BGP. Only used in bgp mode, where it may be omitted to allocate a VIP with no sessions"},"site":{"type":"string","description":"The site slug to allocate the elastic IP in. Only used in bgp mode, where it is required when no server_ids are given"}},"required":["project_id"]}},"required":["type"]}},"required":["data"]},"public_network_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["public_networks"]},"attributes":{"type":"object","properties":{"ipv4":{"type":"string","description":"The IPv4 network in CIDR notation (e.g., \"203.0.113.0/27\")"},"ipv6":{"type":"string","nullable":true,"description":"The paired IPv6 /64 in CIDR notation (e.g., \"2001:db8:1234::/64\")"},"size":{"type":"integer","description":"IPv4 prefix length. Determines how many servers the public network can host.","enum":[26,27,28,29]},"activated":{"type":"boolean","description":"True once a server has been added to the public network and the public network is ready to use."},"capacity":{"type":"integer","description":"Servers this public network can host"},"ips_used":{"type":"integer"},"ips_free":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}},"region":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}}}}}}}},"public_network":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/public_network_data"}}},"public_networks":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/public_network_data"}},"meta":{"type":"object"}}},"create_public_network":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["public_networks"]},"attributes":{"type":"object","properties":{"project_id":{"type":"string","description":"The project to create the public network in"},"site":{"type":"string","description":"The site slug the public network is bound to"},"size":{"type":"integer","enum":[26,27,28,29],"description":"IPv4 prefix length. Determines how many servers the public network can host."}},"required":["project_id","site","size"]}},"required":["type"]}},"required":["data"]},"update_elastic_ip":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["elastic_ips"]},"attributes":{"type":"object","properties":{"server_id":{"type":"string","description":"The server ID to move the Elastic IP to"}},"required":["server_id"]}},"required":["type","attributes"]}},"required":["data"]},"bgp_session_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["bgp_sessions"]},"attributes":{"type":"object","properties":{"status":{"type":"string","nullable":true,"enum":["pending","configuring","active","removing","error"]},"status_message":{"type":"string","nullable":true,"description":"Generic explanation when the session could not be configured. Infrastructure diagnostics are intentionally not exposed."},"server_ip":{"type":"string","nullable":true},"peer_address":{"type":"string","nullable":true,"description":"IP address on the other end of the announcing server's /31 — the address you configure as the BGP neighbor when peering. Use it as the neighbor in BIRD or as peerAddress in MetalLB. Null while the session is still pending, or when the address cannot be resolved."},"asn":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"server":{"type":"object","nullable":true,"description":"The server announcing the Elastic IP over BGP. Null when the announcer could not be resolved to a server record.","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"primary_ipv4":{"type":"string","nullable":true},"operating_system":{"type":"string","nullable":true}}},"region":{"type":"object","nullable":true,"description":"The region where this Elastic IP is located","properties":{"id":{"type":"string","description":"The region ID"},"name":{"type":"string","description":"The region name"},"location":{"type":"object","description":"The site/location within the region","properties":{"id":{"type":"string","description":"The site ID"},"name":{"type":"string","description":"The site name"},"slug":{"type":"string","description":"The site slug"}}}}}}}}},"bgp_session":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/bgp_session_data"}}},"bgp_sessions":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/bgp_session_data"}}}},"create_bgp_session":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["bgp_sessions"]},"attributes":{"type":"object","properties":{"server_id":{"type":"string","description":"The server that will announce the elastic IP over BGP"},"requestor_id":{"type":"string","description":"Optional identifier of the requestor, recorded for auditing"}},"required":["server_id"]}},"required":["type"]}},"required":["data"]},"firewall":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/firewall_data"},"meta":{"type":"object"}}},"firewall_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["firewalls"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"rules":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","description":"Source IP address, IP range in CIDR notation, or 'ANY' (e.g., \"192.168.1.1\", \"192.168.1.0/24\", \"ANY\")"},"to":{"type":"string","description":"Destination IP address, IP range in CIDR notation, or 'ANY' (e.g., \"192.168.1.1\", \"192.168.1.0/24\", \"ANY\")"},"port":{"type":"string"},"protocol":{"type":"string"},"default":{"type":"boolean","description":"True when this rule was seeded by Latitude when the firewall was created; false for user-added rules. Read-only: this flag cannot be set through the API."},"description":{"type":"string","nullable":true,"description":"Optional description explaining the purpose of this rule"}}}},"project":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"color":{"type":"string","nullable":true}}}}}}}},"firewall_server":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["firewall_assignments"]},"attributes":{"type":"object","properties":{"server":{"type":"object","description":"Present only when the assignment targets a server.","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"primary_ipv4":{"type":"string","nullable":true}}},"virtual_machine":{"type":"object","description":"Present only when the assignment targets a virtual machine.","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"primary_ipv4":{"type":"string","nullable":true}}},"firewall_id":{"type":"string"}}}}}}},"firewalls":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/firewall_data"}},"meta":{"type":"object"}}},"firewall_assignments":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/firewall_assignment_data"}},"meta":{"type":"object"}}},"firewall_assignment_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["firewall_assignments"]},"attributes":{"type":"object","properties":{"server":{"type":"object","description":"Present only when the assignment targets a server.","properties":{"id":{"type":"string"},"primary_ipv4":{"type":"string","nullable":true},"hostname":{"type":"string"}}},"virtual_machine":{"type":"object","description":"Present only when the assignment targets a virtual machine.","properties":{"id":{"type":"string"},"primary_ipv4":{"type":"string","nullable":true},"hostname":{"type":"string"}}},"firewall":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}},"firewall_id":{"type":"string"}}}}},"plan":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/plan_data"},"meta":{"type":"object"}}},"plan_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["plans"]},"attributes":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"features":{"type":"array","items":{"type":"string","enum":["ssh","raid","user_data","sev"]},"description":"List of available features for the plan"},"specs":{"type":"object","properties":{"cpu":{"type":"object","properties":{"type":{"type":"string"},"clock":{"type":"number"},"cores":{"type":"number"},"count":{"type":"number"}}},"memory":{"type":"object","properties":{"total":{"type":"number"}}},"drives":{"type":"array","items":{"type":"object","properties":{"count":{"type":"number"},"size":{"type":"string"},"type":{"type":"string","enum":["SSD","HDD","NVME"]}}}},"nics":{"type":"array","items":{"type":"object","properties":{"count":{"type":"number"},"type":{"type":"string"}}}},"gpu":{"type":"object","properties":{"count":{"type":"number"},"type":{"type":"string"},"vram_per_gpu":{"type":"number","nullable":true,"description":"VRAM per GPU in GB"},"interconnect":{"type":"string","nullable":true,"description":"GPU interconnection type (e.g., NVLink, PCIe)"}}}}},"regions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"deploys_instantly":{"type":"array","items":{"type":"string"}},"locations":{"type":"object","properties":{"available":{"type":"array","items":{"type":"string"}},"in_stock":{"type":"array","items":{"type":"string"}}}},"stock_level":{"type":"string","enum":["unavailable","low","medium","high"]},"pricing":{"type":"object","properties":{"USD":{"x-speakeasy-name-override":"USD","type":"object","properties":{"hour":{"type":"number","nullable":true},"month":{"type":"number","nullable":true},"year":{"type":"number","nullable":true}}},"BRL":{"x-speakeasy-name-override":"BRL","type":"object","properties":{"hour":{"type":"number","nullable":true},"month":{"type":"number","nullable":true},"year":{"type":"number","nullable":true}}}}}}}},"available_operating_systems":{"type":"array","items":{"type":"string"}}}}}},"bandwidth_packages":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["bandwidth_packages"]},"attributes":{"type":"object","properties":{"project":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}},"packages":{"type":"array","items":{"type":"object","properties":{"region_slug":{"type":"string"},"currency":{"type":"string"},"unit_price":{"type":"number","nullable":true},"contracted":{"type":"integer"},"total_price":{"type":"number"}}}}}}}},"meta":{"type":"object"}}},"bandwidth_plans":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/bandwidth_plan_data"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}},"bandwidth_plan":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/bandwidth_plan_data"},"meta":{"type":"object"}}},"bandwidth_plan_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["bandwidth_plan"]},"attributes":{"type":"object","properties":{"region":{"type":"string"},"locations":{"type":"array","items":{"type":"string"}},"pricing":{"type":"object","properties":{"usd":{"type":"object","properties":{"monthly":{"type":"integer"},"hourly":{"type":"integer"},"yearly":{"type":"integer","nullable":true}}},"brl":{"type":"object","properties":{"monthly":{"type":"integer"},"hourly":{"type":"integer"},"yearly":{"type":"integer","nullable":true}}}}}}}}},"role":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/role_data"},"meta":{"type":"object"}}},"role_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["roles"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Role"}}}}},"ssh_key":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ssh_key_data"},"meta":{"type":"object"}}},"ssh_keys":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ssh_key_data"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}},"ssh_key_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["ssh_keys"]},"attributes":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"color":{"type":"string","nullable":true}}}},"name":{"type":"string","description":"Name of the SSH Key"},"public_key":{"type":"string","description":"SSH Public Key"},"fingerprint":{"type":"string","description":"SSH Key fingerprint"},"user":{"$ref":"#/components/schemas/user_include"},"project":{"$ref":"#/components/schemas/project_include"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}},"required":["type"]},"user_data":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/user_data_properties"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}},"user_data_object":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/user_data_properties"},"meta":{"type":"object"}}},"user_data_properties":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["user_data"]},"attributes":{"type":"object","properties":{"description":{"type":"string","description":"description of the User Data"},"content":{"type":"string","description":"content of the User Data"},"decoded_content":{"type":"string","nullable":true,"description":"decoded content of the User Data"},"project":{"$ref":"#/components/schemas/project_include"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}},"required":["type"]},"server":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/server_data"},"meta":{"type":"object"}}},"servers":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/server_data"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}},"server_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"color":{"type":"string","nullable":true}}}},"hostname":{"type":"string"},"label":{"type":"string","description":"The server label"},"price":{"type":"number","nullable":true},"status":{"type":"string","description":"`on` - The server is powered ON\n`off` - The server is powered OFF\n`unknown` - The server power status is unknown\n`disk_erasing` - The server is in reinstalling state `disk_erasing`\n`deploying` - The server is deploying or reinstalling\n`failed_deployment` - The server has failed deployment or reinstall\n`rescue_mode` - The server is in rescue mode\n`entering_rescue_mode` - The server is entering rescue mode\n`exiting_rescue_mode` - The server is exiting rescue mode\n\nWhile a server is provisioning, the provisioning state slug is returned verbatim,\nso values outside this list (e.g. `queued`, `starting_deploy`, `commissioning`)\nare possible. Treat this field as an open set, not a closed enum.\n"},"ipmi_status":{"type":"string","enum":["Unavailable","Intermittent","Normal"],"nullable":true},"role":{"type":"string","description":"The server role (e.g. Bare Metal)"},"public_network_eligible":{"type":"boolean","description":"Whether the server is eligible to attach a public network (carries the bond-vpc-enabled tag)."},"bgp_eligible":{"type":"boolean","description":"Whether the server can announce a BGP Elastic IP. Lazy loaded; request it with `extra_fields[servers]=bgp_eligible`."},"bgp_deployed":{"type":"boolean","description":"Whether the server was deployed with the BGP option."},"public_network":{"type":"object","nullable":true,"description":"**Preview.** Available to teams with public networks enabled. The public network this server is attached onto, or null. Fetch full details from GET /public_networks/{id}.","properties":{"id":{"type":"string","example":"pn_2aBcDeFgH"},"ipv4":{"type":"string","nullable":true,"example":"10.90.0.0/26"},"ipv6":{"type":"string","nullable":true,"example":"2001:db8::/64"}}},"site":{"type":"string"},"locked":{"type":"boolean"},"legacy_network":{"type":"boolean","nullable":true,"description":"Whether the server is attached to a legacy network."},"features":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Feature slugs supported by the server hardware (e.g. `direct_remote_access`)."},"rescue_allowed":{"type":"boolean"},"primary_ipv4":{"type":"string","nullable":true},"primary_ipv6":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true},"scheduled_deletion_at":{"type":"string","nullable":true},"plan":{"type":"object","properties":{"id":{"type":"string","description":"The plan ID"},"name":{"type":"string","description":"The plan name"},"slug":{"type":"string","description":"The plan slug"},"billing":{"type":"string","description":"hourly/monthly pricing. Defaults to `hourly`. Appliable for `on_demand` projects only.","nullable":true}}},"operating_system":{"type":"object","properties":{"name":{"type":"string","description":"The OS name"},"slug":{"type":"string","description":"The OS slug"},"version":{"type":"string","description":"The OS description"},"features":{"type":"object","properties":{"raid":{"type":"boolean"},"ssh_keys":{"type":"boolean"},"user_data":{"type":"boolean"},"accelerate":{"type":"boolean"},"rescue":{"type":"boolean"},"workflow":{"type":"boolean"}}},"distro":{"type":"object","properties":{"name":{"type":"string","description":"The OS Distro name"},"slug":{"type":"string","description":"The OS Distro slug"},"series":{"type":"string","description":"The OS Distro Series"}}}}},"region":{"$ref":"#/components/schemas/server_region_resource_data"},"specs":{"type":"object","properties":{"cpu":{"type":"string","description":"CPU model"},"disk":{"type":"string","description":"Disk quantity and size in GB (e.g. 2 x 500GB)"},"ram":{"type":"string","description":"RAM size in GB"},"nic":{"type":"string","description":"NIC quantity and speed"},"gpu":{"type":"string","description":"GPU model and quantity, if present","nullable":true}}},"interfaces":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["external","internal","ipmi","unknown"]},"name":{"type":"string"},"mac_address":{"type":"string","nullable":true},"description":{"type":"string"}}}},"credentials":{"type":"object","nullable":true,"properties":{"username":{"type":"string","nullable":true},"password":{"type":"string","nullable":true},"ssh_keys":{"type":"array","nullable":true,"items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"fingerprint":{"type":"string"},"public_key":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"user_id":{"type":"string"},"group_id":{"type":"integer","nullable":true}}}},"expires_at":{"type":"string","format":"date-time","nullable":true}},"description":"Latest provisioning credentials, lazy loaded. Request it with `extra_fields[servers]=credentials`. Empty when the latest provisioning has no valid credentials."},"project":{"$ref":"#/components/schemas/project_include"},"team":{"$ref":"#/components/schemas/team_include"}}}}},"server_rescue":{"type":"object","properties":{"meta":{"type":"object"}}},"server_action":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["actions"]},"attributes":{"type":"object","properties":{"status":{"type":"string"}}}}},"meta":{"type":"object"}}},"server_schedule_deletion":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["schedule_deletion"]},"attributes":{"type":"object","properties":{"server_id":{"type":"string"},"scheduled_deletion_at":{"type":"string"}}}}}}},"deploy_config":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["deploy_config"]},"attributes":{"type":"object","properties":{"operating_system":{"type":"string"},"hostname":{"type":"string"},"raid":{"type":"string","nullable":true},"disk_layout":{"type":"array","nullable":true,"items":{"type":"object","required":["count","role"],"properties":{"count":{"type":"integer","minimum":1},"role":{"type":"string","enum":["os","storage","raw"]},"raid_level":{"type":"string","enum":["raid-0","raid-1"],"nullable":true},"filesystem":{"type":"string","enum":["ext4"],"nullable":true},"mount_point":{"type":"string","nullable":true}}}},"user_data":{"type":"string"},"ssh_keys":{"type":"array","items":{"type":"string"}},"ipxe_url":{"type":"string","nullable":true},"ipxe":{"type":"string","nullable":true},"persistent_netboot":{"type":"boolean","nullable":true,"description":"Keep network boot enabled so the server iPXE-boots on every reboot instead of booting from disk. Only supported with the 'ipxe' operating system."},"public_network":{"type":"boolean","nullable":true},"public_network_id":{"type":"string","nullable":true}}}}},"meta":{"type":"object"}}},"out_of_band_connection":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"ssh_key":{"type":"object","properties":{"id":{"type":"string"},"description":{"type":"string"},"fingerprint":{"type":"string"}}},"created_at":{"type":"string"},"username":{"type":"string"},"credentials":{"type":"object","description":"credentials are valid only when the server is deployed with ssh keys","properties":{"user":{"type":"string","nullable":true},"password":{"type":"string","nullable":true}}},"port":{"type":"string"},"access_ip":{"type":"string","nullable":true},"server_id":{"type":"string"},"status":{"type":"string"}}}}},"meta":{"type":"object"}}},"team":{"type":"object","properties":{"id":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string","nullable":true},"address":{"type":"string","nullable":true},"currency":{"type":"string","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"},"status":{"type":"string","nullable":true},"enforce_mfa":{"type":"boolean","nullable":true},"customer_billing_id":{"type":"string","nullable":true},"referred_code":{"type":"string","nullable":true},"users":{"type":"array","items":{"$ref":"#/components/schemas/user_include"}},"projects":{"type":"array","items":{"$ref":"#/components/schemas/project_include"}},"owner":{"$ref":"#/components/schemas/user_include"},"billing":{"type":"object","properties":{"id":{"type":"string"},"customer_billing_id":{"type":"string"}}},"feature_flags":{"type":"array","items":{"type":"string"}},"limits":{"type":"object","properties":{"bare_metal":{"type":"integer","nullable":true},"bare_metal_gpu":{"type":"integer","nullable":true},"virtual_machine":{"type":"integer","nullable":true},"virtual_machine_gpu":{"type":"integer","nullable":true},"elastic_ip":{"type":"integer","nullable":true},"bgp_session_per_ip":{"type":"integer","nullable":true},"public_network":{"type":"integer","nullable":true},"virtual_network":{"type":"integer","nullable":true},"database":{"type":"integer","nullable":true},"filesystem":{"type":"integer","nullable":true},"block_storage":{"type":"integer","nullable":true}}}}}}},"team_include":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string","nullable":true},"address":{"type":"string","nullable":true},"currency":{"type":"object","properties":{"id":{"type":"string"},"code":{"type":"string"},"name":{"type":"string"},"currency_id":{"type":"integer","nullable":true}}},"status":{"type":"string","nullable":true},"feature_flags":{"type":"array","items":{"type":"string"}},"limits":{"type":"object","properties":{"bare_metal":{"type":"integer","nullable":true},"bare_metal_gpu":{"type":"integer","nullable":true},"virtual_machine":{"type":"integer","nullable":true},"virtual_machine_gpu":{"type":"integer","nullable":true},"elastic_ip":{"type":"integer","nullable":true},"bgp_session_per_ip":{"type":"integer","nullable":true},"public_network":{"type":"integer","nullable":true},"virtual_network":{"type":"integer","nullable":true},"database":{"type":"integer","nullable":true},"filesystem":{"type":"integer","nullable":true},"block_storage":{"type":"integer","nullable":true}}}}},"team_members":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"mfa_enabled":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"last_login_at":{"type":"string","format":"date-time","nullable":true},"role":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}}}}}}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}},"teams":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/team"}},"meta":{"type":"object"}}},"membership":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"attributes":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"role":{"type":"string","enum":["owner","administrator","collaborator","billing"]},"mfa_enabled":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"last_login_at":{"type":"string","format":"date-time"}}}}}}},"user":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"attributes":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"authentication_factor_id":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"role":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"teams":{"type":"array","items":{"$ref":"#/components/schemas/team_include"}}}}}},"user_teams":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/user_team"}},"meta":{"type":"object"}}},"user_team":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["teams"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string","nullable":true},"address":{"type":"string","nullable":true},"currency":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"status":{"type":"string","nullable":true},"enforce_mfa":{"type":"boolean"},"users":{"type":"array","items":{"$ref":"#/components/schemas/user_include"}},"projects":{"type":"array","items":{"$ref":"#/components/schemas/project_include"}},"owner":{"$ref":"#/components/schemas/user_include"},"billing":{"type":"object","properties":{"id":{"type":"string"},"customer_billing_id":{"type":"string"}}},"feature_flags":{"type":"array","items":{"type":"string"}},"limits":{"type":"object","properties":{"bare_metal":{"type":"integer","nullable":true},"bare_metal_gpu":{"type":"integer","nullable":true},"virtual_machine":{"type":"integer","nullable":true},"virtual_machine_gpu":{"type":"integer","nullable":true},"elastic_ip":{"type":"integer","nullable":true},"bgp_session_per_ip":{"type":"integer","nullable":true},"public_network":{"type":"integer","nullable":true},"virtual_network":{"type":"integer","nullable":true},"database":{"type":"integer","nullable":true},"filesystem":{"type":"integer","nullable":true},"block_storage":{"type":"integer","nullable":true}}}}}}},"user_include":{"type":"object","properties":{"id":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"authentication_factor_id":{"type":"string","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"},"role":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"users":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/user"}}}},"user_update":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["users"]},"attributes":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"authentication_factor_id":{"type":"string","nullable":true},"role":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true},"updated_at":{"type":"string","nullable":true}}}}},"update_api_key":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"(?-mix:^[a-zA-Z]+_[a-zA-Z0-9]+$)"},"type":{"type":"string","enum":["api_keys"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the API Key"},"read_only":{"type":"boolean","description":"Whether the API Key is read-only. Read-only keys can only perform GET requests."},"allowed_ips":{"type":"array","items":{"type":"string"},"description":"List of allowed IP addresses or CIDR ranges (e.g., \"192.168.1.100\", \"10.0.0.0/24\")"}}}},"required":["type"]}}},"create_api_key":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["api_keys"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the API Key","default":"Name of the API Key"},"read_only":{"type":"boolean","description":"Whether the API Key is read-only. Read-only keys can only perform GET requests."},"allowed_ips":{"type":"array","items":{"type":"string"},"description":"List of allowed IP addresses or CIDR ranges (e.g., \"192.168.1.100\", \"10.0.0.0/24\")"}},"required":["name"]}},"required":["type"]}}},"api_key":{"type":"object","properties":{"id":{"type":"string","format":"(?-mix:^[a-zA-Z]+_[a-zA-Z0-9]+$)"},"type":{"type":"string","enum":["api_keys"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the API Key"},"api_version":{"type":"string","description":"The API version associated with this API Key"},"token":{"type":"string","description":"The full token (only returned on create or rotate)"},"token_last_slice":{"type":"string","description":"The last 5 characters of the token created for this API Key"},"read_only":{"type":"boolean","nullable":true,"description":"Whether this API Key is read-only"},"allowed_ips":{"type":"array","nullable":true,"items":{"type":"string"},"description":"List of allowed IP addresses for this API Key"},"last_used_at":{"type":"string","nullable":true,"format":"date-time","description":"The last time a request was made to the API using this API Key"},"user":{"type":"object","description":"The owner of the API Key","properties":{"id":{"type":"string","format":"(?-mix:^[a-zA-Z]+_[a-zA-Z0-9]+$)"},"email":{"type":"string","format":"email"}}},"created_at":{"type":"string","format":"date-time","description":"The time when the API Key was created"},"updated_at":{"type":"string","format":"date-time","description":"The time when the API Key was updated"}}}}},"api_keys":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/api_key"}},"meta":{"type":"object"}}},"vpn_session_data_with_password":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["vpn_sessions"]},"attributes":{"type":"object","properties":{"user_name":{"type":"string","description":"VPN username"},"password":{"type":"string","description":"VPN password"},"port":{"type":"string","description":"VPN port"},"host":{"type":"string","description":"VPN host"},"region":{"$ref":"#/components/schemas/region_resource_data"},"status":{"type":"string","enum":["enable","disable"],"description":"from Firewall Response"},"expires_at":{"type":"string","description":"Time to expiry"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"vpn_session_with_password":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/vpn_session_data_with_password"}}},"vpn_session_without_password":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["vpn_sessions"]},"attributes":{"type":"object","properties":{"user_name":{"type":"string","description":"VPN username"},"port":{"type":"string","description":"VPN port"},"host":{"type":"string","description":"VPN host"},"region":{"type":"object","properties":{"city":{"type":"string"},"country":{"type":"string"},"site":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"facility":{"type":"string"}}}}},"status":{"type":"string","enum":["enable","disable"],"description":"from Firewall Response"},"expires_at":{"type":"string","description":"Time to expiry"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}}},"billing_usage":{"type":"object","properties":{"meta":{"type":"object"},"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"project":{"type":"object","description":"The project in which the returned usage belongs to","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}},"period":{"type":"object","description":"The period from the returned billing cycle","properties":{"start":{"type":"string","format":"date-time"},"end":{"type":"string","format":"date-time"}}},"available_credit_balance":{"type":"integer","description":"The available credit balance in cents"},"amount":{"type":"number","description":"The total usage amount in cents"},"price":{"type":"number","description":"The total usage price in cents"},"threshold":{"type":"number","description":"The threshold which we use to charge your usage, in cents","nullable":true},"products":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"resource":{"type":"string"},"name":{"type":"string"},"proration":{"type":"boolean"},"discounts":{"type":"array","items":{"type":"object","required":["description","type","value"],"properties":{"description":{"type":"string","example":"Monthly Discount - Accelerate","description":"Description of the discount"},"type":{"type":"string","enum":["percent","amount"],"description":"Type of discount (percentage or fixed amount)"},"value":{"type":"number","format":"float","example":5.0,"description":"Value of the discount (percentage or amount)"}}}},"discountable":{"type":"boolean"},"description":{"type":"string"},"amount_without_discount":{"type":"integer"},"start":{"type":"string","format":"date-time"},"end":{"type":"string","format":"date-time","nullable":true},"unit":{"type":"string","enum":["quantity","hour","minute","GB"]},"unit_amount":{"type":"number","description":"The unit amount of the product in cents"},"unit_price":{"type":"number","description":"The unit price of the product in cents"},"usage_type":{"type":"string","enum":["licensed","metered"]},"quantity":{"type":"number"},"amount":{"type":"number","description":"The total usage amount of the product in cents"},"price":{"type":"number","description":"The total usage price of the product in cents"},"metadata":{"type":"object","properties":{"servers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"plan":{"type":"string","nullable":true},"tags":{"type":"array","items":{"type":"string"}}}}},"bucket":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"location":{"type":"string","nullable":true}}},"billing_unit_divisor":{"type":"integer","nullable":true,"description":"For products priced per divided unit (e.g. $0.01 per 1000 API calls), the divisor applied to the quantity before pricing. Omitted for products that are not priced by divided units."}}}}}}}}}}}},"custom_tags":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/custom_tag_data"}},"meta":{"type":"object"}}},"custom_tag":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/custom_tag_data"},"meta":{"type":"object"}}},"custom_tag_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["tags"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Tag"},"slug":{"type":"string","description":"Slug of the Tag"},"description":{"type":"string","nullable":true,"description":"Description of the Tag"},"color":{"type":"string","description":"Color of the Tag"},"team":{"$ref":"#/components/schemas/team_include"}}}}},"baseline":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/baseline_data"},"meta":{"type":"object"}}},"baseline_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["baselines"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the baseline"},"description":{"type":"string","nullable":true,"description":"Description of the baseline"},"target_type":{"type":"string","enum":["all_servers","custom","platforms"],"description":"Target of the baseline: all servers, a custom set (plan unknown), or specific platforms"},"operating_system":{"type":"string","nullable":true,"description":"Slug of the operating system the baseline expects the server to run"},"platforms":{"type":"array","description":"The plans this baseline applies to (only populated when target_type is \"platforms\")","items":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}}},"ssh_keys":{"type":"array","description":"SSH keys the baseline expects on the server","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"fingerprint":{"type":"string"}}}},"user_data":{"type":"object","nullable":true,"description":"User data the baseline expects to run on first boot","properties":{"id":{"type":"string"},"description":{"type":"string","nullable":true}}},"disk_layout":{"type":"array","description":"Expected disk layout","items":{"$ref":"#/components/schemas/baseline_disk_layout_group"}},"bios":{"type":"object","description":"Expected BIOS settings, keyed by setting id"},"created_at":{"type":"string","nullable":true,"description":"Date the baseline was created"}}}}},"baselines":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/baseline_data"}},"meta":{"type":"object"}}},"baseline_disk_layout_group":{"type":"object","properties":{"role":{"type":"string","enum":["os","storage","raw"],"description":"Purpose of the disk group"},"count":{"type":"integer","description":"Number of disks in the group"},"raid_level":{"type":"string","nullable":true,"enum":["raid-0","raid-1"],"description":"RAID level for the group. Only valid for the 'os' and 'storage' roles"},"filesystem":{"type":"string","nullable":true,"enum":["ext4"],"description":"Filesystem to format the group with. Only valid for the 'storage' role"},"mount_point":{"type":"string","nullable":true,"description":"Where the group is mounted. Required for the 'storage' role"}}},"filesystems":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/filesystem_data"}},"meta":{"type":"object"}}},"filesystem_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["filesystems"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"size_in_gb":{"type":"integer"},"storage_class":{"type":"string","enum":["standard","high_performance"],"nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"keyring":{"type":"string","nullable":true,"description":"Keyring secret used to mount the filesystem. Returned only for dashboard-origin requests; null until the filesystem is provisioned."},"cluster_user":{"type":"string","nullable":true,"description":"Cluster user used to mount the filesystem. Returned only for dashboard-origin requests; null until the filesystem is provisioned."},"volume_path":{"type":"string","nullable":true,"description":"Path of the filesystem volume inside the cluster. Returned only for dashboard-origin requests; null until the filesystem is provisioned."},"project":{"$ref":"#/components/schemas/project_include"},"team":{"$ref":"#/components/schemas/team_include"}}}}},"volume_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["volumes"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"size_in_gb":{"type":"integer"},"created_at":{"type":"string","format":"date-time","nullable":true},"namespace_id":{"type":"string","nullable":true},"connector_id":{"type":"string","nullable":true},"initiators":{"type":"array","items":{"type":"object","properties":{"nqn":{"type":"string"}}},"nullable":true},"block":{"type":"object","nullable":true,"description":"NVMe-TCP block mapping of a high performance volume. Null for volumes that are not mapped to a server.","properties":{"status":{"type":"string","nullable":true,"description":"Mapping lifecycle state: \"mapping\" while the mapping is being applied, \"mapped\" once the server can access the volume, or \"failed\". Mapping is asynchronous, so poll the volume until this reaches a terminal state."},"nqn":{"type":"string","nullable":true,"description":"NVMe Qualified Name of the mapped server."},"nsid":{"type":"integer","nullable":true,"description":"NVMe namespace ID of the mapping."},"server_id":{"type":"string","nullable":true,"description":"ID of the server the volume is mapped to."}}},"keyring":{"type":"string","nullable":true,"description":"Keyring secret used to connect to the volume. Returned only for dashboard-origin requests; null until the volume is provisioned."},"cluster_user":{"type":"string","nullable":true,"description":"Cluster user used to connect to the volume. Returned only for dashboard-origin requests; null until the volume is provisioned."},"volume_path":{"type":"string","nullable":true,"description":"Path of the volume inside the cluster. Returned only for dashboard-origin requests; null until the volume is provisioned."},"region":{"type":"object","nullable":true,"properties":{"city":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"site":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"facility":{"type":"string"}}}}},"project":{"$ref":"#/components/schemas/project_include"},"team":{"$ref":"#/components/schemas/team_include"}}}}},"object_storage_data":{"type":"object","properties":{"id":{"type":"string","description":"Object storage ID with bucket_ prefix"},"type":{"type":"string","enum":["object_storages"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Display name of the object storage"},"storage_type":{"type":"string","description":"Type of storage (e.g., `object`)"},"storage_class":{"type":"string","enum":["standard","high_performance"],"description":"Storage class tier"},"created_at":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when the object storage was created"},"bucket_name":{"type":"string","description":"S3-compatible bucket name"},"endpoint":{"type":"string","description":"Region-specific S3-compatible endpoint URL for accessing the bucket. The endpoint varies based on the bucket's location."},"versioning":{"type":"boolean","nullable":true,"description":"Whether bucket versioning is enabled"},"locking":{"type":"boolean","nullable":true,"description":"Whether object lock is enabled on the bucket"},"retention_mode":{"type":"string","enum":["NONE","COMPLIANCE","GOVERNANCE"],"nullable":true,"description":"Object lock retention mode"},"retention_period":{"type":"integer","nullable":true,"description":"Default retention period in days when object lock is enabled"},"source":{"type":"string","description":"How the bucket originated: `default` for buckets created through the API, or `synchronized` for buckets imported from the storage provider."},"region":{"type":"object","nullable":true,"description":"Region information where the object storage is located","properties":{"id":{"type":"string","description":"Region identifier"},"city":{"type":"string","description":"City identifier"},"country":{"type":"string","nullable":true,"description":"Country name"}}},"credentials":{"type":"object","nullable":true,"description":"S3 access credentials. Only included when `extra_fields[object_storages]=credentials` is requested and the requesting user is the bucket's creator.","properties":{"access_key":{"type":"string","description":"S3 access key for authentication"}}},"project":{"$ref":"#/components/schemas/project_include"},"team":{"$ref":"#/components/schemas/team_include"}}}}},"object_storages":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/object_storage_data"}}}},"lifecycle_rule_data":{"type":"object","properties":{"id":{"type":"string","description":"Lifecycle rule ID with lifecycle_ prefix"},"type":{"type":"string","enum":["lifecycle_rules"]},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"Name of the lifecycle rule"},"enabled":{"type":"boolean","description":"Whether the rule is currently active"},"prefix":{"type":"string","nullable":true,"description":"Object key prefix filter. When set, the rule only applies to objects whose keys start with this prefix."},"expiration_days":{"type":"integer","description":"Number of days after object creation when the object expires and is automatically deleted"},"noncurrent_days":{"type":"integer","nullable":true,"description":"Number of days after which noncurrent object versions expire (for versioned buckets)"},"abort_mpu_days_after_initiation":{"type":"integer","nullable":true,"description":"Number of days after initiation to abort incomplete multipart uploads"}}}}},"lifecycle_rules":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/lifecycle_rule_data"}}}},"storage_usage":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"type":"object","properties":{"date":{"type":"string","format":"date","description":"The day this usage row refers to"},"storage_id":{"type":"integer"},"project_id":{"type":"integer"},"storage_type":{"type":"string","nullable":true,"description":"Storage kind. One of: object, file, block."},"tier":{"type":"string","nullable":true,"description":"Performance tier. One of: high, standard."},"region":{"type":"string"},"bytes":{"type":"integer","description":"Canonical storage usage for the day, in bytes"},"raw_value":{"type":"number","description":"The provider-reported usage value, in raw_unit"},"raw_unit":{"type":"string","description":"The unit raw_value is expressed in"},"ingested_at":{"type":"string","format":"date-time"}}}}}}}},"storage_plan":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/storage_plan_data"},"meta":{"type":"object"}}},"storage_plan_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["storage_plans"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"storage_type":{"type":"string","enum":["filesystem","object"]},"storage_class":{"type":"string","enum":["standard","high_performance"],"nullable":true},"regions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"locations":{"type":"array","items":{"type":"string"}},"pricing":{"type":"object","properties":{"USD":{"x-speakeasy-name-override":"USD","type":"object","properties":{"month":{"type":"number"}}},"BRL":{"x-speakeasy-name-override":"BRL","type":"object","properties":{"month":{"type":"number"}}}}}}}}}}}},"storage_plans":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/storage_plan_data"}},"meta":{"type":"object"}}},"virtual_machine_update_payload":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["virtual_machines"]},"id":{"type":"string"},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"The new display name (hostname) for the Virtual Machine"},"tags":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Array of tag IDs to assign to the VM. Replaces all existing tags."},"billing":{"type":"string","enum":["hourly","monthly","yearly"],"description":"Target billing cycle. Upgrades only (hourly → monthly → yearly); downgrades and reserved-project changes return 422."},"plan":{"type":"string","description":"Target plan slug for a vertical upgrade. Upgrades only (cpu, memory, and/or storage must scale up; nothing may shrink). The VM is powered off to apply the new resources and powered back on. Must be sent on its own (cannot be combined with name, tags, or billing). Returns 202 Accepted."}}}},"required":["type","attributes"]}},"required":["data"]},"virtual_machine_payload":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["virtual_machines"]},"attributes":{"type":"object","properties":{"name":{"type":"string","default":"my-vm"},"billing":{"type":"string","enum":["hourly","monthly","yearly"],"description":"Billing cycle for the VM. The supported set is validated per-project (on_demand vs reserved). Defaults to the project's default billing when omitted."},"plan":{"type":"string","description":"The plan ID or Slug for the Virtual Machine","nullable":true},"ssh_keys":{"type":"array","nullable":true,"items":{"type":"string"}},"project":{"type":"string","default":"my-project"},"operating_system":{"type":"string","description":"The operating system slug for the Virtual Machine. If not specified, defaults to ubuntu_24_04_x64_lts for CPU plans or ubuntu24_ml_in_a_box for GPU plans.","nullable":true},"user_data":{"oneOf":[{"type":"integer"},{"type":"string"}],"nullable":true,"description":"A user data record reference (encoded id_hash, e.g. 'ud_xxx', or raw integer id) to apply as cloud-init configuration"},"marketplace_app":{"type":"string","nullable":true,"description":"A marketplace app reference (slug, e.g. \"openclaw\", or encoded id_hash \"mkapp_xxx\") to preinstall on the VM via cloud-init. Cannot be combined with operating_system; the app defines its own."},"tags":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Array of tag IDs to assign to the VM."},"site":{"type":"string","nullable":true,"default":"DAL","description":"Site/region slug where the VM is provisioned (e.g. DAL, SAO). Defaults to DAL when omitted."}},"required":["project","name"]}}}}},"virtual_machine_attributes":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["virtual_machines"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"created_at":{"type":"string"},"status":{"type":"string","description":"Current lifecycle status of the VM, derived from the underlying KubeVirt phase/printable status and capitalized. This is an open set that may grow over time — do not treat it as a closed enum. Known values include: Running, Starting, Stopped, Stopping, Failed, Off, Error, Rebooting, Deleting, Destroying, Configuring network, Scheduling, Scheduled, Provisioning."},"primary_ipv4":{"type":"string","nullable":true},"operating_system":{"type":"object","nullable":true,"description":"The operating system installed on the virtual machine","properties":{"name":{"type":"string","description":"The full name of the operating system"},"slug":{"type":"string","description":"The unique slug identifier for the operating system"},"version":{"type":"string","description":"The version of the operating system"},"features":{"type":"object","description":"Features supported by this operating system","properties":{"raid":{"type":"boolean","description":"Whether RAID is supported"},"ssh_keys":{"type":"boolean","description":"Whether SSH keys are supported"},"user_data":{"type":"boolean","description":"Whether user data is supported"},"rescue":{"type":"boolean","description":"Whether rescue mode is supported"},"workflow":{"type":"boolean","description":"Whether workflow is supported"}}},"distro":{"type":"object","description":"Distribution information","properties":{"name":{"type":"string","description":"The name of the Linux distribution"},"slug":{"type":"string","description":"The slug of the Linux distribution"},"series":{"type":"string","description":"The distribution series code name"}}}}},"credentials":{"type":"object","nullable":true,"description":"SSH credentials for connecting to the virtual machine. Only available when the VM is running. Opt-in extra field: request via `extra_fields[virtual_machines]=credentials`.","properties":{"username":{"type":"string","nullable":true,"description":"The SSH username for the VM, determined by the operating system (e.g., ubuntu, centos, ec2-user). Defaults to ubuntu if not specified by the OS. Returns null when the VM is not running."},"host":{"type":"string","nullable":true},"password":{"type":"string","nullable":true},"ssh_keys":{"type":"array","nullable":true,"items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"fingerprint":{"type":"string"},"public_key":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}},"site":{"type":"string","nullable":true},"billing":{"type":"string","nullable":true},"user_data":{"type":"string","nullable":true,"description":"Encoded ID of the user data record applied to this VM, if any"},"marketplace_app":{"type":"object","nullable":true,"description":"Deploy-time snapshot of the marketplace app this VM was created with. Null when the VM was deployed from a plain operating system.","properties":{"slug":{"type":"string"},"name":{"type":"string","nullable":true},"version":{"type":"string","nullable":true}}},"plan":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}}},"specs":{"type":"object","properties":{"vcpu":{"type":"integer","nullable":true},"ram":{"type":"string","nullable":true},"storage":{"type":"string","nullable":true},"nic":{"type":"string","nullable":true},"gpu":{"type":"string","nullable":true}}},"tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"color":{"type":"string","nullable":true}}}},"team":{"$ref":"#/components/schemas/team_include"},"project":{"$ref":"#/components/schemas/project_include"},"pending_restart":{"type":"boolean","description":"Opt-in extra field. Request via `extra_fields[virtual_machines]=pending_restart`."}}}}},"virtual_machine":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/virtual_machine_attributes"},"meta":{"type":"object"}}},"virtual_machines":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/virtual_machine_attributes"}},"meta":{"$ref":"#/components/schemas/pagination_meta"}}},"virtual_machine_metrics":{"type":"object","properties":{"metric":{"type":"string","enum":["cpu","memory","network","disk"]},"range":{"type":"string","enum":["5m","15m","1h","24h"]},"step":{"type":"string","description":"Sampling interval between adjacent points (e.g. \"15s\", \"1m\")"},"unit":{"type":"string","enum":["percent","bytes_per_second"],"description":"Unit applied to every point value"},"points":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp (seconds precision)"},"value":{"type":"number","description":"Sampled value, rounded to 2 decimal places"}}}}}},"virtual_machine_plans":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the plan"},"type":{"type":"string","enum":["virtual_machine_plans"],"description":"The type of the resource"},"attributes":{"type":"object","properties":{"name":{"type":"string","description":"The name of the plan"},"slug":{"type":"string","description":"The slug of the plan, used to create virtual machines"},"specs":{"type":"object","properties":{"memory":{"type":"integer","description":"The total memory"},"gpu":{"type":"string","nullable":true,"description":"The GPU type"},"vram_per_gpu":{"type":"integer","nullable":true,"description":"VRAM per GPU in GB"},"vcpus":{"type":"integer","description":"The number of virtual CPUs (legacy field)"},"vcpu":{"type":"object","description":"Detailed vCPU specifications","properties":{"count":{"type":"integer","nullable":true,"description":"The number of virtual CPUs"},"clock":{"type":"number","nullable":true,"description":"The CPU clock speed in GHz"},"type":{"type":"string","nullable":true,"description":"The CPU type/model"}}},"nics":{"type":"array","nullable":true,"description":"Network interface cards","items":{"type":"object","properties":{"type":{"type":"string","description":"NIC speed/type"},"count":{"type":"integer","description":"Number of NICs"}}}},"disk":{"type":"object","properties":{"type":{"type":"string","description":"The type of the disk (e.g., local SSD, local NVMe)"},"size":{"type":"object","properties":{"amount":{"type":"integer","description":"The total size of the disk"},"unit":{"type":"string","enum":["gib"],"description":"The unit of the disk size"}}}}}}},"regions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"available":{"type":"array","items":{"type":"string"}},"pricing":{"type":"object","properties":{"USD":{"x-speakeasy-name-override":"USD","type":"object","properties":{"hour":{"type":"number"},"month":{"type":"number"},"year":{"type":"number"}}},"BRL":{"x-speakeasy-name-override":"BRL","type":"object","properties":{"hour":{"type":"number"},"month":{"type":"number"},"year":{"type":"number"}}}}},"locations":{"type":"object","properties":{"available":{"type":"array","items":{"type":"string"},"description":"Sites with clusters that support this plan"},"in_stock":{"type":"array","items":{"type":"string"},"description":"Sites with available capacity for this plan"}}},"stock_level":{"type":"string","enum":["low","unavailable","medium","high"],"description":"The stock level in this region"}}}},"stock_level":{"type":"string","enum":["low","unavailable","medium","high"],"description":"The stock level of the plan"},"available_operating_systems":{"type":"array","description":"List of operating system slugs that are compatible with this plan","items":{"type":"string"}}}}}}}}},"managed_database_plan_attributes":{"type":"object","properties":{"id":{"type":"string","example":"plan_a1b2c3d4"},"type":{"type":"string","enum":["managed_database_plans"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"engine":{"type":"string"},"specs":{"type":"object","properties":{"cpu":{"type":"string"},"memory":{"type":"string"},"storage":{"type":"string"},"shards":{"type":"integer"},"replicas":{"type":"integer"},"iops":{"type":"string","nullable":true}}},"regions":{"type":"array","items":{"type":"object","properties":{"region":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"},"site":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"facility":{"type":"string"}}},"pricing":{"type":"object","additionalProperties":{"type":"object","properties":{"month":{"type":"number","nullable":true},"year":{"type":"number","nullable":true}}}}}}}}}}},"managed_database_plans":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/managed_database_plan_attributes"}}}},"marketplace_app_data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["marketplace_apps"]},"attributes":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string","nullable":true},"short_description":{"type":"string","nullable":true},"category":{"type":"string","nullable":true},"version":{"type":"string","nullable":true},"system_requirements":{"type":"object","properties":{"vcpus":{"type":"integer","nullable":true},"memory_in_gb":{"type":"integer","nullable":true},"storage_in_gb":{"type":"integer","nullable":true},"gpu":{"type":"boolean"}}},"deployment_strategy":{"type":"string","enum":["user_data","image"],"description":"How the app is delivered: cloud-init install on a stock OS image (user_data) or a pre-built disk image (image)"},"default_operating_system":{"type":"string","nullable":true},"compatible_plans":{"type":"array","items":{"type":"string"}},"access_instructions":{"type":"string","nullable":true},"upstream_url":{"type":"string","nullable":true},"documentation_url":{"type":"string","nullable":true},"logo_url":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true}}}}},"marketplace_app":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/marketplace_app_data"}}},"marketplace_apps":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/marketplace_app_data"}}}},"virtual_machine_network_attachment_create_payload":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["virtual_machine_network_attachments"]},"attributes":{"type":"object","properties":{"virtual_network_id":{"type":"string","description":"VLAN id_hash to attach (e.g. vlan_abc123)."},"address":{"type":"string","description":"Optional static IPv4 address with prefix (e.g. 10.0.0.5/24) for the NIC inside the guest. When omitted the NIC is configured for DHCP without a default route. Applying the regenerated network configuration requires running `sudo cloud-init clean --logs --reboot` inside the guest. Warning: that command makes cloud-init treat the next boot as a first boot — it re-runs the instance user-data (e.g. runcmd scripts) and regenerates the SSH host keys, so SSH clients will see a host-key changed warning."}},"required":["virtual_network_id"]}},"required":["type","attributes"]}},"required":["data"]},"virtual_machine_network_attachment_resource":{"type":"object","properties":{"id":{"type":"string","description":"The VLAN id_hash of the attachment"},"type":{"type":"string","enum":["virtual_machine_network_attachments"]},"attributes":{"type":"object","properties":{"virtual_network_id":{"type":"string","description":"The encoded VLAN id_hash"},"vid":{"type":"integer","description":"The 802.1Q VLAN ID"},"pending_restart":{"type":"boolean","description":"True if the attachment requires a VM restart to take effect"}}}}},"virtual_machine_network_attachments":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/virtual_machine_network_attachment_resource"}}}},"virtual_machine_backup_payload":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["virtual_machine_backups"]},"attributes":{"type":"object","properties":{"virtual_machine":{"type":"string","description":"Virtual machine id to back up. Required on the top-level `POST /virtual_machine_backups`; taken from the path when nested under a VM."}},"required":["virtual_machine"]}}}}},"virtual_machine_backup_attributes":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["virtual_machine_backups"]},"attributes":{"type":"object","properties":{"status":{"type":"string","enum":["Creating","Ready","Failed","Archived"]},"size_bytes":{"type":"integer","nullable":true},"expires_at":{"type":"string","nullable":true},"failure_reason":{"type":"string","nullable":true},"created_at":{"type":"string"},"virtual_machine":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}},"team":{"$ref":"#/components/schemas/team_include"},"project":{"$ref":"#/components/schemas/project_include"}}}}},"virtual_machine_backup":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/virtual_machine_backup_attributes"},"meta":{"type":"object"}}},"virtual_machine_backups":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/virtual_machine_backup_attributes"}},"meta":{"type":"object"}}},"virtual_machine_restore_payload":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","enum":["virtual_machine_restores"]},"attributes":{"type":"object","properties":{"backup":{"type":"string","description":"Source backup id. Required on the flat `POST /virtual_machine_restores`; taken from the path when nested under a backup."},"name":{"type":"string","nullable":true,"description":"Optional name for the restored VM. Auto-generated from the source VM when omitted."},"site":{"type":"string","nullable":true,"description":"Optional target site slug. Restores into that region (migration) instead of the backup's own region. Defaults to the backup's site."}}}}}}},"virtual_machine_restore_attributes":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["virtual_machine_restores"]},"attributes":{"type":"object","properties":{"status":{"type":"string","enum":["Creating","Ready","Failed"]},"created_at":{"type":"string"},"backup":{"type":"object","properties":{"id":{"type":"string"}}},"virtual_machine":{"type":"object","nullable":true,"description":"The restored VM. Null until the restore is ready.","properties":{"id":{"type":"string"},"name":{"type":"string"}}},"team":{"$ref":"#/components/schemas/team_include"},"project":{"$ref":"#/components/schemas/project_include"}}}}},"virtual_machine_restore":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/virtual_machine_restore_attributes"},"meta":{"type":"object"}}},"virtual_machine_restores":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/virtual_machine_restore_attributes"}},"meta":{"type":"object"}}}},"securitySchemes":{"Bearer":{"type":"apiKey","name":"Authorization","in":"header"}}}}