Skip to main content
POST
/
api
/
v1
/
vms
/
{id}
/
ip
Attach floating IP to VM
curl --request POST \
  --url https://api.rafftechnologies.com/api/v1/vms/{id}/ip \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --header 'X-Project-ID: <x-project-id>' \
  --data '
{
  "ip_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "type": "IPv4",
  "security_groups": [
    "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  ]
}
'
{
  "success": true,
  "message": "<string>",
  "data": {
    "vm_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "ip_address": "<string>",
    "nic_id": 123,
    "mac": "<string>"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.rafftechnologies.com/llms.txt

Use this file to discover all available pages before exploring further.

Updated May 8, 2026

Authorizations

X-API-Key
string
header
required

API key for authentication. Each key is bound to a specific account.

Headers

X-Project-ID
string<uuid>
required

Project ID. Required for all mutating operations (create, delete, power actions, resize).

Path Parameters

id
string<uuid>
required

VM ID (UUID)

Body

application/json

Provide either ip_id (attach an existing reserved IP) or type (auto-allocate a new IP). Don't combine — ip_id takes precedence and type is ignored when both are sent.

ip_id
string<uuid>

ID of a previously reserved IP. The IP must belong to the same account, be reserved, and not already attached to another VM. No new billing — you're already paying for the reserved IP.

type
enum<string>

IP family to auto-allocate. Used only when ip_id is omitted. Defaults to IPv4. A new IP is allocated from the pool and billed to your account from the moment of attach.

Available options:
IPv4,
IPv6
security_groups
string<uuid>[]

Security group IDs (UUIDs) to apply to the new NIC.

Response

IP attached

success
boolean
required
Example:

true

message
string
data
object
Last modified on May 8, 2026