> ## Documentation Index
> Fetch the complete documentation index at: https://api.smartlead.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List SmartServers

> List your Single SmartInfra servers (dedicated IPs), optionally with the campaigns using each one

> [!NOTE]
>
> **SmartServers API**: Dedicated IP infrastructure feature. Contact [support@smartlead.ai](mailto:support@smartlead.ai) for access.

## Overview

Returns the active dedicated IPs on the **Single SmartInfra** tab of your dashboard. Use the `id` of a server as the `server_id` when [assigning it to campaigns](/api-reference/smart-servers/assign-campaigns).

Pass `withCampaignData=true` to also get, for each server, how many campaigns use it, which campaigns those are, and the client it belongs to.

> [!NOTE]
>
> Servers that belong to a **Multi SmartInfra** are not listed here. Assign those through their `infra_id` instead.

## Query Parameters

**api\_key** `string` *required*

Your SmartLead API key

**withCampaignData** `string`

Set to `true` to include `campaignCount`, `campaigns`, `client_details` and `region_name` for each server

**unmapped** `string`

Set to `true` to return only servers that are not assigned to any campaign or client. Takes precedence over `withCampaignData`.

```bash cURL theme={null}
curl -X GET "https://smartservers.smartlead.ai/api/v1/smart-server/?withCampaignData=true&api_key=YOUR_KEY"
```

```python Python theme={null}
import requests

response = requests.get(
    "https://smartservers.smartlead.ai/api/v1/smart-server/",
    params={"api_key": "YOUR_API_KEY", "withCampaignData": "true"}
)

for server in response.json()["data"]:
    print(server["id"], server["ip"], server["campaignCount"])
```

```javascript JavaScript theme={null}
const API_KEY = 'YOUR_API_KEY';

const response = await fetch(
  `https://smartservers.smartlead.ai/api/v1/smart-server/?withCampaignData=true&api_key=${API_KEY}`
);

const { data } = await response.json();
data.forEach((server) => console.log(server.id, server.ip, server.campaignCount));
```

## Response Fields

**data** `array`

One entry per server

**server**

**id** `number`

Server ID. Pass this as `server_id` when assigning campaigns.

**ip** `string`

Dedicated IP address

**alias\_name** `string`

Display name of the server

**client\_id** `number | null`

Client the server belongs to, if any

**createdAt** `string`

When the server was created

**campaignCount** `number`

Number of campaigns using the server. Only with `withCampaignData=true`.

**campaigns** `array`

`{ id, name }` of each campaign using the server. Only with `withCampaignData=true`.

**client\_details** `object | null`

`{ id, name }` of the server's client. Only with `withCampaignData=true`.

**region\_name** `string`

Region the server is hosted in. Only with `withCampaignData=true`.

## Response Codes

**200** `Success`

Servers returned. An account with no servers returns an empty `data` array.

**401** `Unauthorized`

Invalid or missing API key. Check your authentication.

```json 200 - Success theme={null}
{
  "statusCode": 200,
  "success": true,
  "message": "Fetched the list of smart servers",
  "data": [
    {
      "id": 907,
      "ip": "203.0.113.24",
      "alias_name": "outreach-us-1",
      "client_id": 31,
      "createdAt": "2026-08-14T09:21:07.000Z",
      "campaignCount": 2,
      "campaigns": [
        { "id": 5614, "name": "Q4 Outbound - US" },
        { "id": 5615, "name": "Q4 Outbound - EU" }
      ],
      "client_details": { "id": 31, "name": "Acme Corp" },
      "region_name": "US East"
    }
  ]
}
```

```json Error - Unauthorized theme={null}
{
  "statusCode": 401,
  "success": false,
  "message": "Unauthorized",
  "error": "Invalid API Key"
}
```

## Related Endpoints

* [Assign SmartInfra to Campaigns](/api-reference/smart-servers/assign-campaigns)
* [Get SmartServers for a Campaign](/api-reference/smart-servers/get-campaign-servers)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.