FlexMetal

OpenAPI documentation for the i3D.net FlexMetal API.

For setup, prerequisites, Terraform usage and other narrative, see Getting started with FlexMetal.

Locations and Plans

Get all available Bare Metal locations

get
Authorizations
PRIVATE-TOKENstringRequired
Responses
200

OK

application/json
idinteger · integerRead-onlyRequired

ID of the location

namestringRead-onlyRequired

Name of the location

shortNamestringRead-onlyRequired

Short name of the location

displayNamestringRead-onlyRequired

Display name of the location

countryIdinteger · integerRead-onlyRequired

Country ID of the location

countryNamestringRead-onlyRequired

Country name of the Location

countryShortNamestringRead-onlyRequired

Country short name of the Location

get
/v3/flexMetal/location
Deprecated

Get all instance types for a location.

get

For an overview of all locations, see /v3/flexMetal/location

Authorizations
PRIVATE-TOKENstringRequired
Path parameters
locationIdintegerRequired
Responses
200

OK

application/json
idinteger · integerRead-onlyRequired

Id of instance type

locationIdinteger · integerRead-onlyRequired

LocationId of instance type

namestringRead-onlyRequired

Name of instance type

socketsinteger · integerRead-onlyRequired

Sockets of instance type

coresinteger · integerRead-onlyRequired

Cores of instance type

memoryinteger · integerRead-onlyRequired

Memory of instance type

memoryTypestringRead-onlyRequired

Memory type of instance type

storageinteger · integerRead-onlyRequired

Storage of instance type

storageTypestringRead-onlyRequired

Storage type of instance type

generationNamestringRead-onlyRequired

Generation name of instance type

get
/v3/flexMetal/location/{locationId}/instanceTypes

Get the server availability plan

get
Authorizations
PRIVATE-TOKENstringRequired
Responses
200

OK

application/json
namestringRead-onlyRequired

The name of this plan, also referred to as the instance type name.

get
/v3/flexMetal/plans

Servers

Get all your FlexMetal servers

get
Authorizations
PRIVATE-TOKENstringRequired
Query parameters
statusstringRequired

Filter by status [creating, provisioning, delivered, failed, releasing, released]

tagstring[]Required

Filter by one or more server tags (only servers with all tags will be returned)

Header parameters
RANGED-DATAstringOptional

Example header and default range: RANGED-DATA:start=0,results=25

Responses
200

OK

application/json
uuidstringRead-onlyRequired

Server UUID.

Example: 019256ab-1554-73a7-b091-f024b0a724ea
namestringRequired

Server host name.

Example: host.example.com
statusstringRead-onlyRequired

Server delivery status.

    • created
      delivered
      failed
      releasing
      released
  • Example: delivered
    statusMessagestringRead-onlyRequired

    Status message.

    Example: OK
    tagsstring[]Read-onlyRequired

    Server tags.

    Example: my-tag
    createdAtinteger · integerRead-onlyRequired

    Server creation timestamp.

    Example: 1728030905
    deliveredAtinteger · integerOptional

    Server delivery timestamp.

    Example: 1728031748
    releasedAtinteger · integerOptional

    Server release timestamp.

    contractIdstringOptional

    Represents client contractId.

    Example: MY-CONTRACT-123
    get
    /v3/flexMetal/servers

    Create a new FlexMetal server

    post
    Authorizations
    PRIVATE-TOKENstringRequired
    Body

    Request object for creating a new Flex Metal server

    namestringRequired

    Server name or hostname, depending on the chosen OS. E.g. Talos requires a hostname but regular Linux OSs work with either.

    Example: host.example.com
    locationstringRequired

    Server location. Available locations can be obtained from /v3/flexMetal/location. Use the name field from the response.

    instanceTypestringRequired

    Server instance type. Available instance types can be obtained from /v3/flexMetal/location/{locationId}}/instanceTypes. Use the name field from the response.

    Example: bm7.std.8
    sshKeystring[]Required

    A list of SSH keys. You can either supply SSH key UUIDs from stored objects in /v3/sshKey or provide public keys directly. SSH keys are installed for the root user.

    Example: ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHo8IaPkQ6UnDZvi4F4RBSouRa6Gtysdg2EF+SIXheVF2SGBQ2uH7RfDjXRfvq4VpHJrKYs4kWfNoHQg8ZG6PH4= ecdsa-key-20240131
    postInstallScriptstringOptional

    Post install script. A shell script (e.g. bash) that will be executed after your OS is installed. Currently only supported for Linux based operating systems.

    Example: #!/bin/bash echo "Hello world!" > /root/blah.txt
    tagsstring[]Optional

    A list of tags. There is a maximum of 60 tags per server. Each tag must adhere to this pattern: ^[A-Za-z0-9_:-]{1,64}$

    Example: my-tag
    contractIdstringOptional

    Represents client contractId. Format is ^[A-Z0-9_-.]{0,240}$

    Example: MY-CONTRACT-123
    overflowbooleanOptional

    If true, the server will be created even if the location is at commited capacity. Default is false.

    Example: true
    Responses
    200

    OK

    application/json
    uuidstringRead-onlyRequired

    Server UUID.

    Example: 019256ab-1554-73a7-b091-f024b0a724ea
    namestringRequired

    Server host name.

    Example: host.example.com
    statusstringRead-onlyRequired

    Server delivery status.

    • created
      delivered
      failed
      releasing
      released
  • Example: delivered
    statusMessagestringRead-onlyRequired

    Status message.

    Example: OK
    tagsstring[]Read-onlyRequired

    Server tags.

    Example: my-tag
    createdAtinteger · integerRead-onlyRequired

    Server creation timestamp.

    Example: 1728030905
    deliveredAtinteger · integerOptional

    Server delivery timestamp.

    Example: 1728031748
    releasedAtinteger · integerOptional

    Server release timestamp.

    contractIdstringOptional

    Represents client contractId.

    Example: MY-CONTRACT-123
    post
    /v3/flexMetal/servers

    Get a specific FlexMetal server

    get
    Authorizations
    PRIVATE-TOKENstringRequired
    Path parameters
    uuidstringRequired

    The server identifier

    Responses
    200

    OK

    application/json
    uuidstringRead-onlyRequired

    Server UUID.

    Example: 019256ab-1554-73a7-b091-f024b0a724ea
    namestringRequired

    Server host name.

    Example: host.example.com
    statusstringRead-onlyRequired

    Server delivery status.

    • created
      delivered
      failed
      releasing
      released
  • Example: delivered
    statusMessagestringRead-onlyRequired

    Status message.

    Example: OK
    tagsstring[]Read-onlyRequired

    Server tags.

    Example: my-tag
    createdAtinteger · integerRead-onlyRequired

    Server creation timestamp.

    Example: 1728030905
    deliveredAtinteger · integerOptional

    Server delivery timestamp.

    Example: 1728031748
    releasedAtinteger · integerOptional

    Server release timestamp.

    contractIdstringOptional

    Represents client contractId.

    Example: MY-CONTRACT-123
    get
    /v3/flexMetal/servers/{uuid}

    Re-install a specific FlexMetal server

    patch

    Important note: When wipeDisk is true (the default), this will cause a full disk wipe!

    Authorizations
    PRIVATE-TOKENstringRequired
    Path parameters
    uuidstringRequired

    The server identifier

    Query parameters
    wipeDiskbooleanOptional

    When false, skips the explicit quick-format pre-step. Defaults to true.

    Default: true
    Body
    namestringOptional

    Server host name.

    Example: host.example.com
    sshKeystring[]Optional

    A list of SSH keys. You can either supply SSH key UUIDs from stored objects in /v3/sshKey or provide public keys directly. SSH keys are installed for the root user.

    Example: ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHo8IaPkQ6UnDZvi4F4RBSouRa6Gtysdg2EF+SIXheVF2SGBQ2uH7RfDjXRfvq4VpHJrKYs4kWfNoHQg8ZG6PH4= ecdsa-key-20240131
    postInstallScriptstringOptional

    Post install script. A shell script (e.g. bash) that will be executed after your OS is installed. Currently only supported for Linux based operating systems.

    Example: #!/bin/bash echo "Hello world!" > /root/blah.txt
    Responses
    200

    OK

    application/json
    uuidstringRead-onlyRequired

    Server UUID.

    Example: 019256ab-1554-73a7-b091-f024b0a724ea
    namestringRequired

    Server host name.

    Example: host.example.com
    statusstringRead-onlyRequired

    Server delivery status.

    • created
      delivered
      failed
      releasing
      released
  • Example: delivered
    statusMessagestringRead-onlyRequired

    Status message.

    Example: OK
    tagsstring[]Read-onlyRequired

    Server tags.

    Example: my-tag
    createdAtinteger · integerRead-onlyRequired

    Server creation timestamp.

    Example: 1728030905
    deliveredAtinteger · integerOptional

    Server delivery timestamp.

    Example: 1728031748
    releasedAtinteger · integerOptional

    Server release timestamp.

    contractIdstringOptional

    Represents client contractId.

    Example: MY-CONTRACT-123
    patch
    /v3/flexMetal/servers/{uuid}

    Release a FlexMetal server

    delete
    Authorizations
    PRIVATE-TOKENstringRequired
    Path parameters
    uuidstringRequired

    The server identifier

    Responses
    200

    OK

    application/json
    uuidstringRead-onlyRequired

    Server UUID.

    Example: 019256ab-1554-73a7-b091-f024b0a724ea
    namestringRequired

    Server host name.

    Example: host.example.com
    statusstringRead-onlyRequired

    Server delivery status.

    • created
      delivered
      failed
      releasing
      released
  • Example: delivered
    statusMessagestringRead-onlyRequired

    Status message.

    Example: OK
    tagsstring[]Read-onlyRequired

    Server tags.

    Example: my-tag
    createdAtinteger · integerRead-onlyRequired

    Server creation timestamp.

    Example: 1728030905
    deliveredAtinteger · integerOptional

    Server delivery timestamp.

    Example: 1728031748
    releasedAtinteger · integerOptional

    Server release timestamp.

    contractIdstringOptional

    Represents client contractId.

    Example: MY-CONTRACT-123
    delete
    /v3/flexMetal/servers/{uuid}

    Get the LSHW output of a specific FlexMetal server

    get
    Authorizations
    PRIVATE-TOKENstringRequired
    Path parameters
    uuidstringRequired

    The server identifier

    Responses
    200

    OK

    application/json

    A Flex Metal server's LSHW output

    createdAtinteger · integerRequired

    The unixtimestamp of when the LSHW output was generated on the server. 0 if there is no known LSHW output.

    Example: 1734443654
    lshwobjectRequired

    The server's LSHW output or null if there is no known LSHW output.

    get
    /v3/flexMetal/servers/{uuid}/lshw

    Get a FlexMetal server's root password

    get

    Windows only: Fetch the root password within the first 24 hours after installation.

    Authorizations
    PRIVATE-TOKENstringRequired
    Path parameters
    uuidstringRequired

    The server identifier

    Responses
    200

    OK

    application/json
    rootPasswordstringRequired

    Server root password.

    get
    /v3/flexMetal/servers/{uuid}/rootPassword

    Server commands

    Get all your server commands for the given server UUID

    get
    Authorizations
    PRIVATE-TOKENstringRequired
    Header parameters
    RANGED-DATAstringOptional

    Example header and default range: RANGED-DATA:start=0,results=25

    Responses
    200

    OK

    application/json

    A FlexMetal server command

    uuidstringRead-onlyRequired

    Server command UUID.

    Example: 019256ab-1554-73a7-b091-f024b0a724ea
    serverUuidstringRead-onlyRequired

    Server UUID.

    Example: 019256ab-1554-73a7-b091-f024b0a724ea
    statestringRead-onlyRequired

    Server command state.

    • finished
      failed
  • Example: finished
    createdAtstringRead-onlyRequired

    created at server command timestamp.

    updatedAtstringRead-onlyRequired

    updated at server command timestamp.

    get
    /v3/flexMetal/servers/{uuid}/commands

    Create a new server command

    post
    Authorizations
    PRIVATE-TOKENstringRequired
    Path parameters
    uuidstringRequired

    The server identifier

    Body

    Request object for creating a server command

    commandstringRequired

    Server command to be executed.

    Example: reboot|power_on|power_off|shutdown
    Responses
    200

    OK

    application/json

    A FlexMetal server command

    uuidstringRead-onlyRequired

    Server command UUID.

    Example: 019256ab-1554-73a7-b091-f024b0a724ea
    serverUuidstringRead-onlyRequired

    Server UUID.

    Example: 019256ab-1554-73a7-b091-f024b0a724ea
    statestringRead-onlyRequired

    Server command state.

    • finished
      failed
  • Example: finished
    createdAtstringRead-onlyRequired

    created at server command timestamp.

    updatedAtstringRead-onlyRequired

    updated at server command timestamp.

    post
    /v3/flexMetal/servers/{uuid}/commands

    Get a specific server command by UUID

    get
    Authorizations
    PRIVATE-TOKENstringRequired
    Path parameters
    uuidstringRequired

    The server identifier

    commandUuidstringRequired

    The server command identifier

    Responses
    200

    OK

    application/json

    A FlexMetal server command

    uuidstringRead-onlyRequired

    Server command UUID.

    Example: 019256ab-1554-73a7-b091-f024b0a724ea
    serverUuidstringRead-onlyRequired

    Server UUID.

    Example: 019256ab-1554-73a7-b091-f024b0a724ea
    statestringRead-onlyRequired

    Server command state.

    • finished
      failed
  • Example: finished
    createdAtstringRead-onlyRequired

    created at server command timestamp.

    updatedAtstringRead-onlyRequired

    updated at server command timestamp.

    get
    /v3/flexMetal/servers/{uuid}/commands/{commandUuid}

    Tags

    Get all your FlexMetal tags

    get
    Authorizations
    PRIVATE-TOKENstringRequired
    Header parameters
    RANGED-DATAstringOptional

    Example header and default range: RANGED-DATA:start=0,results=25

    Responses
    200

    List of tags

    application/json

    A Flex Metal tag

    tagstringRequired

    The tag name

    Example: my-tag
    get
    /v3/flexMetal/tags

    Create a FlexMetal tag

    post
    Authorizations
    PRIVATE-TOKENstringRequired
    Body

    A Flex Metal tag

    tagstringRequired

    The tag name

    Example: my-tag
    Responses
    200

    The new tag

    application/json

    A Flex Metal tag

    tagstringRequired

    The tag name

    Example: my-tag
    post
    /v3/flexMetal/tags

    Get a tag by name

    get
    Authorizations
    PRIVATE-TOKENstringRequired
    Responses
    200

    List of tags

    application/json

    A Flex Metal tag

    tagstringRequired

    The tag name

    Example: my-tag
    get
    /v3/flexMetal/tags/{tag}

    Rename a FlexMetal tag

    put
    Authorizations
    PRIVATE-TOKENstringRequired
    Body

    A Flex Metal tag

    tagstringRequired

    The tag name

    Example: my-tag
    Responses
    200

    The updated tag model

    application/json

    A Flex Metal tag

    tagstringRequired

    The tag name

    Example: my-tag
    put
    /v3/flexMetal/tags/{tag}

    Delete a FlexMetal tag

    delete
    Authorizations
    PRIVATE-TOKENstringRequired
    Responses
    delete
    /v3/flexMetal/tags/{tag}

    No content

    Add a tag to a FlexMetal server

    post
    Authorizations
    PRIVATE-TOKENstringRequired
    Path parameters
    uuidstringRequired

    The server identifier

    tagstringRequired

    The tag to add to the server

    Responses
    200

    OK

    application/json
    uuidstringRead-onlyRequired

    Server UUID.

    Example: 019256ab-1554-73a7-b091-f024b0a724ea
    namestringRequired

    Server host name.

    Example: host.example.com
    statusstringRead-onlyRequired

    Server delivery status.

    • created
      delivered
      failed
      releasing
      released
  • Example: delivered
    statusMessagestringRead-onlyRequired

    Status message.

    Example: OK
    tagsstring[]Read-onlyRequired

    Server tags.

    Example: my-tag
    createdAtinteger · integerRead-onlyRequired

    Server creation timestamp.

    Example: 1728030905
    deliveredAtinteger · integerOptional

    Server delivery timestamp.

    Example: 1728031748
    releasedAtinteger · integerOptional

    Server release timestamp.

    contractIdstringOptional

    Represents client contractId.

    Example: MY-CONTRACT-123
    post
    /v3/flexMetal/servers/{uuid}/tag/{tag}

    Remove a tag from a FlexMetal server

    delete
    Authorizations
    PRIVATE-TOKENstringRequired
    Path parameters
    uuidstringRequired

    The server identifier

    tagstringRequired

    The tag to remove from the server

    Responses
    200

    OK

    application/json
    uuidstringRead-onlyRequired

    Server UUID.

    Example: 019256ab-1554-73a7-b091-f024b0a724ea
    namestringRequired

    Server host name.

    Example: host.example.com
    statusstringRead-onlyRequired

    Server delivery status.

    • created
      delivered
      failed
      releasing
      released
  • Example: delivered
    statusMessagestringRead-onlyRequired

    Status message.

    Example: OK
    tagsstring[]Read-onlyRequired

    Server tags.

    Example: my-tag
    createdAtinteger · integerRead-onlyRequired

    Server creation timestamp.

    Example: 1728030905
    deliveredAtinteger · integerOptional

    Server delivery timestamp.

    Example: 1728031748
    releasedAtinteger · integerOptional

    Server release timestamp.

    contractIdstringOptional

    Represents client contractId.

    Example: MY-CONTRACT-123
    delete
    /v3/flexMetal/servers/{uuid}/tag/{tag}

    Quota and usage

    Get your FlexMetal quota and current usage numbers

    get
    Authorizations
    PRIVATE-TOKENstringRequired
    Responses
    200

    List of quota & current usage numbers

    application/json
    get
    /v3/flexMetal/quota/usage

    Retrieve a list of FlexMetal server usages

    get
    Authorizations
    PRIVATE-TOKENstringRequired
    Query parameters
    startDatestringOptional

    Must be a valid date string. E.g. YYYY-MM-DD.

    endDatestringOptional

    Must be a valid date string. E.g. YYYY-MM-DD.

    Responses
    200

    OK

    application/json
    startedAtstring · date-timeRequired

    Usage tracking starts.

    endedAtstring · date-timeRequired

    Usage tracking ends.

    totalHoursinteger · integerRequired

    Total hours of usage.

    totalMinutesinteger · integerRequired

    Total minutes of usage.

    bandwidthIninteger · integerRequired

    Total bandwidth out.

    totalEgressBytesinteger · integerRequired

    Total egress bytes.

    get
    /v3/flexMetal/usage

    Capacity

    Deprecated

    Get your FlexMetal capacity commits and usage

    get
    Authorizations
    PRIVATE-TOKENstringRequired
    Responses
    200

    OK

    application/json
    get
    /v3/flexMetal/capacity/commit

    Last updated

    Was this helpful?