Documentation

esc
    API reference · Networking / Load balancers

    Load balancers

    Spread incoming traffic across instances using VPC-native or appliance load balancers.

    A load balancer distributes incoming network connections across multiple instances. Pantech supports two kinds of load balancers: vpc_native for instances in a private VPC subnet (using a reserved public IP with purpose load_balancer), and appliance for standard security group zones (with dedicated public IP allocation and HTTP/HTTPS/TCP support). The ports, zone, kind, and network settings are fixed once created; the name, algorithm, and backend targets can change. See the load balancers guide.

    The load balancer object

    Fields

    • idstringrequired

      e.g. lb_....

    • namestringrequired
    • zone_idstringrequired
    • kindstringrequired

      One of vpc_native, appliance.

    • public_ip_idstringrequired
    • public_ip_addressstring or nullrequired

      The address clients connect to; null until it is known.

    • network_idstring or nullrequired
    • subnet_idstringrequired
    • protocolstringrequired

      One of tcp, http, https.

    • algorithmstringrequired

      One of roundrobin, leastconn, source.

    • public_portintegerrequired
    • private_portintegerrequired
    • cidr_listarray of stringrequired

      Source addresses allowed to connect; empty is anywhere.

    • membersarray of LoadBalancerMemberrequired
      Show 4 child fields
      • instance_idstringrequired
      • instance_namestring or null

        The instance's name; null when it is gone.

      • desired_statestringrequired

        present while it should receive traffic; deleted once you removed it and that has not finished.

        One of present, deleted.

      • observed_statestringrequired

        active once it receives traffic.

        One of pending, active, deleting, deleted, failed, unknown.

    • desired_statestringrequired

      What you asked for: present, or deleted once you deleted it.

      One of present, deleted.

    • observed_statestringrequired

      active once it serves traffic.

      One of pending, provisioning, active, deleting, deleted, failed, unknown.

    • in_syncbooleanrequired

      False while a change you made has not reached the load balancer yet.

    • created_atstring or nullrequired
    • updated_atstring or nullrequired

    List load balancers

    Your load balancers, newest first, each with its targets. Deleted and failed ones are left out. Narrow it with network_id or public_ip_id.

    GET/public/v1/load-balancers
    Read keyReturns200OK

    Headers

    • Authorizationstringrequired

      Bearer and your API key: Bearer PAN_….

    Query parameters

    • network_idstring

      Only load balancers in this private network (net_…).

    • public_ip_idstring

      Only load balancers on this public IP (pip_…).

    Response 200

    The load balancers.
    • dataarray of LoadBalancerrequired
      Show 19 child fields
      • idstringrequired

        e.g. lb_....

      • namestringrequired
      • zone_idstringrequired
      • kindstringrequired

        One of vpc_native, appliance.

      • public_ip_idstringrequired
      • public_ip_addressstring or nullrequired

        The address clients connect to; null until it is known.

      • network_idstring or nullrequired
      • subnet_idstringrequired
      • protocolstringrequired

        One of tcp, http, https.

      • algorithmstringrequired

        One of roundrobin, leastconn, source.

      • public_portintegerrequired
      • private_portintegerrequired
      • cidr_listarray of stringrequired

        Source addresses allowed to connect; empty is anywhere.

      • membersarray of LoadBalancerMemberrequired
        Show 4 child fields
        • instance_idstringrequired
        • instance_namestring or null

          The instance's name; null when it is gone.

        • desired_statestringrequired

          present while it should receive traffic; deleted once you removed it and that has not finished.

          One of present, deleted.

        • observed_statestringrequired

          active once it receives traffic.

          One of pending, active, deleting, deleted, failed, unknown.

      • desired_statestringrequired

        What you asked for: present, or deleted once you deleted it.

        One of present, deleted.

      • observed_statestringrequired

        active once it serves traffic.

        One of pending, provisioning, active, deleting, deleted, failed, unknown.

      • in_syncbooleanrequired

        False while a change you made has not reached the load balancer yet.

      • created_atstring or nullrequired
      • updated_atstring or nullrequired
    • next_cursorstring or nullrequired

      Always null: this list is returned whole.

    Errors

    • 401UNAUTHENTICATED: the request has no API key, or the key is mistyped, revoked or expired, or its creator has left the organization. Send Authorization: Bearer PAN_… with a valid key; create one in the console under Organization › API keys.
    • 403INSUFFICIENT_SCOPE: the API key lacks the scope this endpoint needs (read for GET, write for changes; an AI app's key also needs delete for a destructive call). Use a key with that scope, or reconnect the AI app with "Manage and delete" access. FORBIDDEN: the member who created the key may not do this in the organization. Use a key created by an owner or admin. AI_APPS_DISABLED: the organization has turned AI app access off, and this request was made with an AI app's key or sent by Pantech's MCP server (Pantech-Client: mcp/…). An owner can turn it on in the console under Organization › AI apps.
    • 404NOT_FOUND: load balancers are not offered on this platform yet.
    • 429RATE_LIMITED: this API key, verified user or organization used its request budget for the current window, or this address exceeded an IP/failed-auth limit. Wait Retry-After seconds, then retry. For authenticated quota denials, RateLimit-Scope identifies the denying quota and RateLimit-Reset reports its remaining window in seconds.
    • 503SERVICE_UNAVAILABLE: request quota storage is unavailable. Wait a few seconds, then retry.

    Every code is explained in Errors.

    Authorization
    Query
    curl "https://api.pantechdynamics.com/public/v1/load-balancers" \
      -H "Authorization: Bearer $PANTECH_API_KEY"
    Response 200
    {
      "data": [
        {
          "id": "lb_06gk3x9tq7m2v8r4y1c5d0zp8w",
          "name": "web",
          "zone_id": "af-abj-2",
          "kind": "vpc_native",
          "public_ip_id": "pip_06gk3x9tq7m2v8r4y1c5d0zp8w",
          "public_ip_address": "102.211.122.80",
          "network_id": "net_06gk3x9tq7m2v8r4y1c5d0zp8w",
          "subnet_id": "snet_06gk3x9tq7m2v8r4y1c5d0zp8w",
          "protocol": "tcp",
          "algorithm": "roundrobin",
          "public_port": 443,
          "private_port": 8443,
          "cidr_list": [],
          "members": [
            {
              "instance_id": "vm_06gk3x9tq7m2v8r4y1c5d0zp8w",
              "instance_name": "web-1",
              "desired_state": "present",
              "observed_state": "active"
            }
          ],
          "desired_state": "present",
          "observed_state": "active",
          "in_sync": true,
          "created_at": "2026-10-03T09:30:00Z",
          "updated_at": "2026-10-03T09:30:00Z"
        }
      ],
      "next_cursor": null
    }

    Create a load balancer

    Spreads one TCP port of a load_balancer public IP across instances in one subnet of that IP's private network (VPC). The public IP must be active and have purpose load_balancer; one public IP can carry several load balancers, one per public port. private_port defaults to public_port, and algorithm to roundrobin. cidr_list limits which source addresses may connect (default: anywhere). The subnet's firewall rules must allow the port.

    Returns 202 Accepted with an operation_id (also in the Location header). The change happens in the background: poll GET /public/v1/operations/{operation_id}, or stream /events, until status is succeeded or failed; a failed operation carries a stable failure.code and a readable failure.reason.

    Send an Idempotency-Key. A retry with the same key returns the original operation instead of making the change twice. The load balancer's id is the operation's resource_id.

    POST/public/v1/load-balancers
    Write keyNeeds Idempotency-KeyReturns202Accepted

    Headers

    • Authorizationstringrequired

      Bearer and your API key: Bearer PAN_….

    • Idempotency-Keystringrequired

      A new value, such as a UUID, for each change. Resend with the same value to retry safely.

      At most 255 characters.

    Body

    application/json
    • namestringrequired

      1 to 63 characters.

    • zone_idstring

      The zone to place the load balancer in.

    • kindstring

      vpc_native (a VPC zone: needs public_ip_id and subnet_id) or appliance (a standard zone: needs zone_id; a load balancer VM with its own public address, billed as that VM). Left out, it is vpc_native when subnet_id is given and appliance when only zone_id is. Anything else is 422 INVALID_LOAD_BALANCER_KIND; an appliance in a zone that does not offer one fails its operation with LOAD_BALANCER_APPLIANCE_UNAVAILABLE.

      One of vpc_native, appliance.

    • public_ip_idstring

      An active public IP with purpose load_balancer (required for vpc_native).

    • subnet_idstring

      A subnet of the public IP's private network. Every target must be in it (required for vpc_native).

    • algorithmstring

      roundrobin takes turns, leastconn picks the target with the fewest connections, source keeps a client on one target.

      One of roundrobin, leastconn, source. Defaults to roundrobin.

    • public_portintegerrequired

      The TCP port clients connect to, 1 to 65535.

    • private_portinteger

      The port on each target. Defaults to public_port.

    • cidr_listarray of string

      Source addresses allowed to connect, as IPv4 CIDRs (at most 20). Leave out for anywhere.

    • instance_idsarray of string

      Instances to spread traffic across (at most 50). You can add them later.

    Response 202

    Accepted. Follow operation_id until it finishes.
    • operation_idstringrequired

      The operation carrying out the change. Poll GET /public/v1/operations/{operation_id} (also the Location header) until status is succeeded or failed.

    • resource_idstringrequired

      The resource being created or changed, e.g. the new snapshot's id for a snapshot create.

    • statusstringrequired

      The operation's status when the request was accepted, usually submitting. Follow operation_id for the outcome.

    Errors

    • 400IDEMPOTENCY_KEY_REQUIRED: the Idempotency-Key header is missing. Send a new unique value, such as a UUID, with every write. INVALID_IDEMPOTENCY_KEY: the Idempotency-Key header is longer than 255 characters. Use a shorter value. INVALID_REQUEST_BODY: the body is not a single valid JSON object. Send one JSON object with the fields documented for this endpoint.
    • 401UNAUTHENTICATED: the request has no API key, or the key is mistyped, revoked or expired, or its creator has left the organization. Send Authorization: Bearer PAN_… with a valid key; create one in the console under Organization › API keys.
    • 403INSUFFICIENT_SCOPE: the API key lacks the scope this endpoint needs (read for GET, write for changes; an AI app's key also needs delete for a destructive call). Use a key with that scope, or reconnect the AI app with "Manage and delete" access. FORBIDDEN: the member who created the key may not do this in the organization. Use a key created by an owner or admin. AI_APPS_DISABLED: the organization has turned AI app access off, and this request was made with an AI app's key or sent by Pantech's MCP server (Pantech-Client: mcp/…). An owner can turn it on in the console under Organization › AI apps.
    • 404RESOURCE_NOT_FOUND: the public IP, subnet or an instance does not exist in your organization. Check the ids. NOT_FOUND: load balancers are not offered on this platform yet.
    • 409PUBLIC_IP_NOT_FOR_LOAD_BALANCER: use an active public IP with purpose load_balancer. PORT_IN_USE: another load balancer on this public IP already uses this port. Choose another port, or delete that load balancer. CONCURRENT_UPDATE: the resource changed while this request was being processed. Retry the request; if it repeats, read the resource first.
    • 413REQUEST_TOO_LARGE: the body is larger than 64 KiB. Send a smaller request.
    • 422VALIDATION_FAILED: a field is invalid. Each entry of errors names the field and its code: name, public_ip_id, subnet_id or public_port REQUIRED: send them. public_port INVALID_LOAD_BALANCER: name 1 to 63 characters, algorithm roundrobin, leastconn or source, ports 1 to 65535, and at most 20 IPv4 CIDRs in cidr_list. subnet_id SUBNET_NOT_IN_NETWORK: the subnet is not in the public IP's private network. instance_ids INSTANCE_NOT_IN_SUBNET: every instance must be in the load balancer's subnet. instance_ids TOO_MANY: at most 50 instances. UNKNOWN_FIELD: the body has a field this endpoint does not take (named in field). Remove it or fix its spelling.
    • 429RATE_LIMITED: this API key, verified user or organization used its request budget for the current window, or this address exceeded an IP/failed-auth limit. Wait Retry-After seconds, then retry. For authenticated quota denials, RateLimit-Scope identifies the denying quota and RateLimit-Reset reports its remaining window in seconds.
    • 503SERVICE_UNAVAILABLE: request quota storage is unavailable. Wait a few seconds, then retry. PROVISIONING_UNAVAILABLE: the provisioning service is temporarily unavailable. Wait a few seconds, then retry with the same Idempotency-Key.

    Every code is explained in Errors.

    Authorization
    Body
    Idempotency
    curl -X POST "https://api.pantechdynamics.com/public/v1/load-balancers" \
      -H "Authorization: Bearer $PANTECH_API_KEY" \
      -H "Idempotency-Key: $(uuidgen)" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "web",
        "public_port": 443,
        "private_port": 8443,
        "instance_ids": [
          "vm_06gk3x9tq7m2v8r4y1c5d0zp8w"
        ]
      }'
    Response 202
    {
      "operation_id": "op_06gk3x9tq7m2v8r4y1c5d0zp8w",
      "resource_id": "lb_06gk3x9tq7m2v8r4y1c5d0zp8w",
      "status": "submitting"
    }

    Get a load balancer

    One load balancer, with its targets. in_sync is false while a change you made has not reached it yet.

    GET/public/v1/load-balancers/{load_balancer_id}
    Read keyReturns200OK

    Headers

    • Authorizationstringrequired

      Bearer and your API key: Bearer PAN_….

    Path parameters

    • load_balancer_idstringrequired

      The load balancer's id (lb_…).

    Response 200

    The load balancer.
    • idstringrequired

      e.g. lb_....

    • namestringrequired
    • zone_idstringrequired
    • kindstringrequired

      One of vpc_native, appliance.

    • public_ip_idstringrequired
    • public_ip_addressstring or nullrequired

      The address clients connect to; null until it is known.

    • network_idstring or nullrequired
    • subnet_idstringrequired
    • protocolstringrequired

      One of tcp, http, https.

    • algorithmstringrequired

      One of roundrobin, leastconn, source.

    • public_portintegerrequired
    • private_portintegerrequired
    • cidr_listarray of stringrequired

      Source addresses allowed to connect; empty is anywhere.

    • membersarray of LoadBalancerMemberrequired
      Show 4 child fields
      • instance_idstringrequired
      • instance_namestring or null

        The instance's name; null when it is gone.

      • desired_statestringrequired

        present while it should receive traffic; deleted once you removed it and that has not finished.

        One of present, deleted.

      • observed_statestringrequired

        active once it receives traffic.

        One of pending, active, deleting, deleted, failed, unknown.

    • desired_statestringrequired

      What you asked for: present, or deleted once you deleted it.

      One of present, deleted.

    • observed_statestringrequired

      active once it serves traffic.

      One of pending, provisioning, active, deleting, deleted, failed, unknown.

    • in_syncbooleanrequired

      False while a change you made has not reached the load balancer yet.

    • created_atstring or nullrequired
    • updated_atstring or nullrequired

    Errors

    • 401UNAUTHENTICATED: the request has no API key, or the key is mistyped, revoked or expired, or its creator has left the organization. Send Authorization: Bearer PAN_… with a valid key; create one in the console under Organization › API keys.
    • 403INSUFFICIENT_SCOPE: the API key lacks the scope this endpoint needs (read for GET, write for changes; an AI app's key also needs delete for a destructive call). Use a key with that scope, or reconnect the AI app with "Manage and delete" access. FORBIDDEN: the member who created the key may not do this in the organization. Use a key created by an owner or admin. AI_APPS_DISABLED: the organization has turned AI app access off, and this request was made with an AI app's key or sent by Pantech's MCP server (Pantech-Client: mcp/…). An owner can turn it on in the console under Organization › AI apps.
    • 404RESOURCE_NOT_FOUND: no load balancer with this id in your organization, or the id is not a load balancer id (lb_…). Check the id. NOT_FOUND: load balancers are not offered on this platform yet.
    • 429RATE_LIMITED: this API key, verified user or organization used its request budget for the current window, or this address exceeded an IP/failed-auth limit. Wait Retry-After seconds, then retry. For authenticated quota denials, RateLimit-Scope identifies the denying quota and RateLimit-Reset reports its remaining window in seconds.
    • 503SERVICE_UNAVAILABLE: request quota storage is unavailable. Wait a few seconds, then retry.

    Every code is explained in Errors.

    Authorization
    Path
    curl "https://api.pantechdynamics.com/public/v1/load-balancers/lb_06gk3x9tq7m2v8r4y1c5d0zp8w" \
      -H "Authorization: Bearer $PANTECH_API_KEY"
    Response 200
    {
      "id": "lb_06gk3x9tq7m2v8r4y1c5d0zp8w",
      "name": "web",
      "zone_id": "af-abj-2",
      "kind": "vpc_native",
      "public_ip_id": "pip_06gk3x9tq7m2v8r4y1c5d0zp8w",
      "public_ip_address": "102.211.122.80",
      "network_id": "net_06gk3x9tq7m2v8r4y1c5d0zp8w",
      "subnet_id": "snet_06gk3x9tq7m2v8r4y1c5d0zp8w",
      "protocol": "tcp",
      "algorithm": "roundrobin",
      "public_port": 443,
      "private_port": 8443,
      "cidr_list": [],
      "members": [
        {
          "instance_id": "vm_06gk3x9tq7m2v8r4y1c5d0zp8w",
          "instance_name": "web-1",
          "desired_state": "present",
          "observed_state": "active"
        }
      ],
      "desired_state": "present",
      "observed_state": "active",
      "in_sync": true,
      "created_at": "2026-10-03T09:30:00Z",
      "updated_at": "2026-10-03T09:30:00Z"
    }

    Change a load balancer

    Renames it, changes its algorithm, or replaces its targets: instance_ids, when sent (even empty), is the whole new set. Fields you leave out stay as they are. The ports, the public IP, the subnet and cidr_list cannot change: create a new load balancer for those. A change that changes nothing returns an empty operation_id.

    Returns 202 Accepted with an operation_id (also in the Location header). The change happens in the background: poll GET /public/v1/operations/{operation_id}, or stream /events, until status is succeeded or failed; a failed operation carries a stable failure.code and a readable failure.reason.

    Send an Idempotency-Key. A retry with the same key returns the original operation instead of making the change twice.

    PATCH/public/v1/load-balancers/{load_balancer_id}
    Write keyNeeds Idempotency-KeyReturns202Accepted

    Headers

    • Authorizationstringrequired

      Bearer and your API key: Bearer PAN_….

    • Idempotency-Keystringrequired

      A new value, such as a UUID, for each change. Resend with the same value to retry safely.

      At most 255 characters.

    Path parameters

    • load_balancer_idstringrequired

      The load balancer's id (lb_…).

    Body

    application/json
    • namestring

      A new name, 1 to 63 characters.

    • algorithmstring

      One of roundrobin, leastconn, source.

    • instance_idsarray of string

      The whole new set of targets (at most 50). Send [] to remove them all.

    Response 202

    Accepted. Follow operation_id until it finishes.
    • operation_idstringrequired

      The operation carrying out the change. Poll GET /public/v1/operations/{operation_id} (also the Location header) until status is succeeded or failed.

    • resource_idstringrequired

      The resource being created or changed, e.g. the new snapshot's id for a snapshot create.

    • statusstringrequired

      The operation's status when the request was accepted, usually submitting. Follow operation_id for the outcome.

    Errors

    • 400IDEMPOTENCY_KEY_REQUIRED: the Idempotency-Key header is missing. Send a new unique value, such as a UUID, with every write. INVALID_IDEMPOTENCY_KEY: the Idempotency-Key header is longer than 255 characters. Use a shorter value. INVALID_REQUEST_BODY: the body is not a single valid JSON object. Send one JSON object with the fields documented for this endpoint.
    • 401UNAUTHENTICATED: the request has no API key, or the key is mistyped, revoked or expired, or its creator has left the organization. Send Authorization: Bearer PAN_… with a valid key; create one in the console under Organization › API keys.
    • 403INSUFFICIENT_SCOPE: the API key lacks the scope this endpoint needs (read for GET, write for changes; an AI app's key also needs delete for a destructive call). Use a key with that scope, or reconnect the AI app with "Manage and delete" access. FORBIDDEN: the member who created the key may not do this in the organization. Use a key created by an owner or admin. AI_APPS_DISABLED: the organization has turned AI app access off, and this request was made with an AI app's key or sent by Pantech's MCP server (Pantech-Client: mcp/…). An owner can turn it on in the console under Organization › AI apps.
    • 404RESOURCE_NOT_FOUND: no load balancer with this id in your organization, or the id is not a load balancer id (lb_…). Check the id. NOT_FOUND: load balancers are not offered on this platform yet.
    • 409LOAD_BALANCER_NOT_CHANGEABLE: the load balancer is being deleted or has failed. CONCURRENT_UPDATE: the resource changed while this request was being processed. Retry the request; if it repeats, read the resource first.
    • 413REQUEST_TOO_LARGE: the body is larger than 64 KiB. Send a smaller request.
    • 422VALIDATION_FAILED: a field is invalid. Each entry of errors names the field and its code: public_port INVALID_LOAD_BALANCER: name 1 to 63 characters and algorithm roundrobin, leastconn or source. instance_ids INSTANCE_NOT_IN_SUBNET: every instance must be in the load balancer's subnet. instance_ids TOO_MANY: at most 50 instances. UNKNOWN_FIELD: the body has a field this endpoint does not take (named in field). Remove it or fix its spelling.
    • 429RATE_LIMITED: this API key, verified user or organization used its request budget for the current window, or this address exceeded an IP/failed-auth limit. Wait Retry-After seconds, then retry. For authenticated quota denials, RateLimit-Scope identifies the denying quota and RateLimit-Reset reports its remaining window in seconds.
    • 503SERVICE_UNAVAILABLE: request quota storage is unavailable. Wait a few seconds, then retry. PROVISIONING_UNAVAILABLE: the provisioning service is temporarily unavailable. Wait a few seconds, then retry with the same Idempotency-Key.

    Every code is explained in Errors.

    Authorization
    Path
    Body
    Idempotency
    curl -X PATCH "https://api.pantechdynamics.com/public/v1/load-balancers/lb_06gk3x9tq7m2v8r4y1c5d0zp8w" \
      -H "Authorization: Bearer $PANTECH_API_KEY" \
      -H "Idempotency-Key: $(uuidgen)" \
      -H "Content-Type: application/json" \
      -d '{
        "instance_ids": [
          "vm_06gk3x9tq7m2v8r4y1c5d0zp8w"
        ]
      }'
    Response 202
    {
      "operation_id": "op_06gk3x9tq7m2v8r4y1c5d0zp8w",
      "resource_id": "lb_06gk3x9tq7m2v8r4y1c5d0zp8w",
      "status": "submitting"
    }

    Delete a load balancer

    Deletes the load balancer. Traffic to its port stops once the operation succeeds; the instances and the public IP are kept.

    Returns 202 Accepted with an operation_id (also in the Location header). The change happens in the background: poll GET /public/v1/operations/{operation_id}, or stream /events, until status is succeeded or failed; a failed operation carries a stable failure.code and a readable failure.reason.

    Send an Idempotency-Key. A retry with the same key returns the original operation instead of making the change twice.

    Scope: write. Destructive: an AI app's key also needs delete.

    DELETE/public/v1/load-balancers/{load_balancer_id}
    Write keyNeeds Idempotency-KeyReturns202Accepted

    Headers

    • Authorizationstringrequired

      Bearer and your API key: Bearer PAN_….

    • Idempotency-Keystringrequired

      A new value, such as a UUID, for each change. Resend with the same value to retry safely.

      At most 255 characters.

    Path parameters

    • load_balancer_idstringrequired

      The load balancer's id (lb_…).

    Response 202

    Accepted. Follow operation_id until it finishes.
    • operation_idstringrequired

      The operation carrying out the change. Poll GET /public/v1/operations/{operation_id} (also the Location header) until status is succeeded or failed.

    • resource_idstringrequired

      The resource being created or changed, e.g. the new snapshot's id for a snapshot create.

    • statusstringrequired

      The operation's status when the request was accepted, usually submitting. Follow operation_id for the outcome.

    Errors

    • 400IDEMPOTENCY_KEY_REQUIRED: the Idempotency-Key header is missing. Send a new unique value, such as a UUID, with every write. INVALID_IDEMPOTENCY_KEY: the Idempotency-Key header is longer than 255 characters. Use a shorter value.
    • 401UNAUTHENTICATED: the request has no API key, or the key is mistyped, revoked or expired, or its creator has left the organization. Send Authorization: Bearer PAN_… with a valid key; create one in the console under Organization › API keys.
    • 403INSUFFICIENT_SCOPE: the API key lacks the scope this endpoint needs (read for GET, write for changes; an AI app's key also needs delete for a destructive call). Use a key with that scope, or reconnect the AI app with "Manage and delete" access. FORBIDDEN: the member who created the key may not do this in the organization. Use a key created by an owner or admin. AI_APPS_DISABLED: the organization has turned AI app access off, and this request was made with an AI app's key or sent by Pantech's MCP server (Pantech-Client: mcp/…). An owner can turn it on in the console under Organization › AI apps.
    • 404RESOURCE_NOT_FOUND: no load balancer with this id in your organization, or the id is not a load balancer id (lb_…). Check the id. NOT_FOUND: load balancers are not offered on this platform yet.
    • 409CONCURRENT_UPDATE: the resource changed while this request was being processed. Retry the request; if it repeats, read the resource first.
    • 429RATE_LIMITED: this API key, verified user or organization used its request budget for the current window, or this address exceeded an IP/failed-auth limit. Wait Retry-After seconds, then retry. For authenticated quota denials, RateLimit-Scope identifies the denying quota and RateLimit-Reset reports its remaining window in seconds.
    • 503SERVICE_UNAVAILABLE: request quota storage is unavailable. Wait a few seconds, then retry. PROVISIONING_UNAVAILABLE: the provisioning service is temporarily unavailable. Wait a few seconds, then retry with the same Idempotency-Key.

    Every code is explained in Errors.

    Authorization
    Path
    Idempotency
    curl -X DELETE "https://api.pantechdynamics.com/public/v1/load-balancers/lb_06gk3x9tq7m2v8r4y1c5d0zp8w" \
      -H "Authorization: Bearer $PANTECH_API_KEY" \
      -H "Idempotency-Key: $(uuidgen)"
    Response 202
    {
      "operation_id": "op_06gk3x9tq7m2v8r4y1c5d0zp8w",
      "resource_id": "lb_06gk3x9tq7m2v8r4y1c5d0zp8w",
      "status": "submitting"
    }

    Was this page helpful?

    Updated