Detach project dedicated IP
Detach an outbound IP from a project without releasing the purchased address.
Request & response examples
Request example Server-side
curl --fail-with-body --request DELETE \ 'https://app.helicarrier.xyz/api/projects/my-project/dedicated-ip' \ -H "Authorization: Bearer $HELI_API_KEY"const response = await fetch( "https://app.helicarrier.xyz/api/projects/my-project/dedicated-ip", { method: "DELETE", headers: { Authorization: `Bearer ${process.env.HELI_API_KEY}` } });const data = await response.json();if (!response.ok) { throw new Error(`HTTP ${response.status}: ${data.error}`);}// Inspect data; avoid logging secret responses.import osimport requests
response = requests.request( "DELETE", "https://app.helicarrier.xyz/api/projects/my-project/dedicated-ip", headers={ "Authorization": f"Bearer {os.environ['HELI_API_KEY']}" }, timeout=30,)response.raise_for_status()data = response.json()# Inspect data; avoid logging secret responses. Response example 200
{ "ip": null}Illustrative values · selected fields
Path parameters
slug string required Project slug.
Response 200
Returns ip: null after detaching. This does not release the purchased address or stop its billing.
Examples show selected response fields with illustrative values. Your response can contain additional fields.
ip object | null Attached dedicated IP, or null when detached. In DNS responses, the target IP address.
Errors
401 The API key is missing, invalid, or revoked.
403 The caller or key scope does not permit this operation.
ALSO AVAILABLE VIA MCP
Connect your agent ↗ detach_project_dedicated_ip
Required MCP arguments: slug. Send path, query,
and body fields together as tool arguments.