每台服务器 不限流量、DDoS 防护和 IPMI 全部包含。无开通费,无长期合约。 每台服务器均不限流量 查看价格

API 参考 · v1

FlexDedi REST API

控制面板中的每一项操作,都能通过 HTTPS 和 JSON 完成:订购服务器、重装系统、断电重启、设置反向 DNS,以及管理私有 VLAN 和 SSH 密钥。

  • https://api.flexdedi.com/v1
  • Bearer 令牌
  • 基于 HTTPS 的 JSON

速查

基础 URL
https://api.flexdedi.com/v1
身份验证
在 Authorization 请求头中传递 Bearer 令牌
格式
基于 HTTPS 的 JSON,时间戳采用 ISO 8601 格式(UTC)
版本
v1,不兼容变更仅在新版本中发布
本页内容

概览

FlexDedi API 是一套 REST API。请求和响应均通过 HTTPS 以 JSON 格式传输,时间戳采用 UTC 时间的 ISO 8601 格式,每个对象都有带前缀的字符串 ID,例如服务器为 srv_7f3a,SSH 密钥为 key_2b81。当前版本为 v1;不兼容的变更只会通过新版本发布,绝不会直接改动现有版本。

身份验证

在 Authorization 请求头中以 Bearer 令牌形式发送 API 密钥。密钥分为只读和读写两种,均可随时吊销。不要把密钥写进源代码或留在 shell 历史记录中:请从环境变量或密钥管理器中读取。

bash
curl -s https://api.flexdedi.com/v1/servers \
  -H "Authorization: Bearer $FLEXDEDI_TOKEN"

请求与分页

请求体以 JSON 格式发送,并设置 Content-Type: application/json。列表类接口返回一个 data 数组和一个 meta 对象;使用 page 和 per_page(默认 25,最大 100)进行分页。

列表响应
{
  "data": [
    { "id": "srv_7f3a", "plan": "pro-32", "location": "fra", "status": "active" }
  ],
  "meta": { "page": 1, "per_page": 25, "total": 1 }
}

错误

错误使用标准 HTTP 状态码,并返回 JSON 响应体,其中包含供程序识别的 code 和便于人阅读的 message。

状态含义
400请求格式有误,例如 JSON 无效。
401API 密钥缺失、无效或已被吊销。
403密钥为只读权限,或资源属于其他账户。
404资源不存在。
409服务器正在执行其他操作,例如重装系统。
422参数校验失败,例如所选套餐在该机房不可用。
429请求过多;请在 Retry-After 指定的等待时间后重试。
5xx我们这边出现故障;请按退避策略重试。
错误响应
{
  "error": {
    "code": "plan_unavailable",
    "message": "Plan max-192 is not available in location nyc."
  }
}

速率限制

每个响应都包含 X-RateLimit-Limit、X-RateLimit-Remaining 和 X-RateLimit-Reset 响应头。超出限制时,API 返回 429,并附带以秒为单位的 Retry-After 响应头。对于耗时较长的操作,请每隔 15 到 30 秒轮询一次,而不是在紧密循环中反复请求。

套餐

GET/plans

列出可订购的服务器配置,包括硬件、端口速率、以美元计的月费,以及每款配置可用的机房。

json
{
  "data": [
    {
      "id": "pro-32",
      "name": "Pro 32",
      "cpu": "AMD EPYC 9355P",
      "cores": 32,
      "memory_gb": 384,
      "storage": "2 × 3.84 TB NVMe Gen5",
      "port": "25 Gbps",
      "price_monthly_usd": 749,
      "delivery": "minutes",
      "locations": ["nyc", "iad", "dfw", "lax", "ams", "fra", "lon", "sin"]
    }
  ]
}

机房位置

GET/locations

列出各数据中心机房,包括代码(nyc、iad、dfw、lax、ams、fra、lon、sin、tyo、syd)、城市、国家以及该机房可用的套餐。

系统镜像

GET/os-images

列出可安装的系统镜像,例如 ubuntu-24.04、debian-13、almalinux-9、rocky-9、proxmox-9 和 windows-2025。订购或重装时请使用其 id。

服务器

GET/servers

列出你的服务器。可按 location、plan 或 status(provisioning、active、reinstalling、rescue、off)筛选。

POST/servers

订购服务器并开始开通。响应为新服务器对象,状态为 provisioning;请持续轮询,直到状态变为 active。该订单的计费方式与在控制面板中下单相同。

字段类型说明
planstring必填。来自 GET /plans 的套餐 ID,例如 pro-32。
locationstring必填。该套餐可用的机房代码。
osstring必填。来自 GET /os-images 的镜像 ID。
hostnamestring可选。将设置到安装好的系统中。
ssh_keysarray可选。要为 root 用户安装的已保存 SSH 密钥的名称或 ID。
bash
curl -s -X POST https://api.flexdedi.com/v1/servers \
  -H "Authorization: Bearer $FLEXDEDI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"plan":"pro-32","location":"fra","os":"ubuntu-24.04","hostname":"db-1","ssh_keys":["ops-laptop"]}'
202 Accepted
{
  "id": "srv_9c4d",
  "plan": "pro-32",
  "location": "fra",
  "os": "ubuntu-24.04",
  "hostname": "db-1",
  "status": "provisioning",
  "ipv4": null,
  "ipv6": null,
  "created_at": "2026-11-02T14:05:31Z"
}

GET/servers/{id}

返回单台服务器的信息,包括状态、套餐、机房、IPv4 地址、IPv6 前缀和主机名。

PATCH/servers/{id}

更新控制面板中显示的标签或主机名。不会更改正在运行的操作系统内部的主机名。

DELETE/servers/{id}

取消服务器。服务器将保持运行至已付费周期结束,随后其硬盘数据将被清除。添加 ?immediately=true 可立即停机并清除数据;当前周期的费用不予退还。

电源与重装

POST/servers/{id}/actions/{action}

通过管理控制器执行电源操作:reboot(ACPI 重启)、reset(硬重置)、power-on、power-off 或 power-cycle。响应为状态已更新的服务器对象。

bash
curl -s -X POST https://api.flexdedi.com/v1/servers/srv_7f3a/actions/reboot \
  -H "Authorization: Bearer $FLEXDEDI_TOKEN"

POST/servers/{id}/actions/reinstall

使用 os 重装服务器,并可选指定 hostname 和 ssh_keys。此操作会清除所有硬盘。新系统就绪前,状态为 reinstalling。

bash
curl -s -X POST https://api.flexdedi.com/v1/servers/srv_7f3a/actions/reinstall \
  -H "Authorization: Bearer $FLEXDEDI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"os":"debian-13","hostname":"web-2","ssh_keys":["ops-laptop"]}'

POST/servers/{id}/actions/rescue

让服务器从通过网络加载的救援系统启动,硬盘上已安装的系统保持不变。发送 {"enable": false} 即可退出救援模式,重新从硬盘启动。参见重装与救援。

IP 地址与反向 DNS

GET/servers/{id}/ips

列出分配给服务器的 IPv4 地址和 IPv6 前缀,以及对应的反向 DNS 记录。

PUT/servers/{id}/ips/{ip}/rdns

通过 {"ptr": "mail.example.com"} 为地址设置反向 DNS(PTR)记录。正向记录应解析到同一地址,邮件服务器尤其需要注意。

私有 VLAN

GET/vlans

列出你的私有网络及其所在机房和 VLAN ID。私有网络用于连接同一机房内的服务器;内网流量不计费。

POST/vlans/{id}/servers

通过 {"server_id": "srv_7f3a"} 将同一机房内的服务器接入私有网络。然后按照内网配置中的说明,在操作系统中配置 VLAN 接口。

SSH 密钥

GET/ssh-keys

列出你账户中保存的公钥。

POST/ssh-keys

通过 {"name": "ops-laptop", "public_key": "ssh-ed25519 AAAA…"} 保存公钥,之后订购或重装时即可按名称引用。

DELETE/ssh-keys/{id}

删除已保存的密钥。已安装到服务器上的密钥不会被移除。

带宽

GET/servers/{id}/bandwidth

返回由 from 和 to(ISO 8601)指定时段内的入站和出站流量,采样间隔为 5 分钟。流量不限量:这些数据仅用于监控,不用于计费。

Terraform

Terraform Provider 使用同一个 API 密钥,从环境变量 FLEXDEDI_TOKEN 中读取。flexdedi_server 资源对应 POST /servers;销毁该资源即取消服务器。

main.tf
terraform {
  required_providers {
    flexdedi = { source = "flexdedi/flexdedi" }
  }
}

resource "flexdedi_server" "web" {
  plan     = "core-16"
  location = "ams"
  os       = "ubuntu-24.04"
  hostname = "web-1"
  ssh_keys = ["ops-laptop"]
}

output "web_ipv4" {
  value = flexdedi_server.web.ipv4
}