# Retrieve the warmup status for a specific IP address

## API Overview

IP warming is the practice of gradually increasing the volume of mail sent with a dedicated IP address according to a predetermined schedule. This gradual process helps to establish a reputation with ISPs (Internet Service Providers) as a legitimate email sender.

SendGrid can automatically [warm up](/docs/sendgrid/glossary/ip-warmup/) dedicated IP addresses by limiting the amount of mail that can be sent through them per hour. The limit determined by how long the IP address has been warming up.

See the [warmup schedule](/docs/sendgrid/ui/sending-email/warming-up-an-ip-address/#automated-ip-warmup-hourly-send-schedule) to learn how SendGrid limits your email traffic for IPs in warmup.

You can also choose to use Twilio SendGrid's automated IP warmup for any of your IPs from the ["IP Addresses" settings menu in the Twilio SendGrid App](https://app.sendgrid.com/settings/ip_addresses).

## Operation overview

```json
{"path":"https://api.sendgrid.com/v3/ips/warmup/{ip_address}","method":"get","servers":[{"url":"https://api.sendgrid.com","description":"for global users and subusers"},{"url":"https://api.eu.sendgrid.com","description":"for EU regional subusers"}]}
```

**This endpoint allows you to retrieve the warmup status for a specific IP address.**

You can retrieve all of your warming IPs using the "Retrieve all IPs currently in warmup" endpoint.

## Operation details

### Authentication

API Key

### Headers

```json
[{"in":"header","name":"Authorization","required":true,"default":"Bearer <<YOUR_API_KEY_HERE>>","schema":{"type":"string"}}]
```

### Path parameters

```json
[{"name":"ip_address","in":"path","description":"The IP address that you want to retrieve the warmup status for.","required":true,"schema":{"type":"string"}}]
```

### Responses

```json
[{"responseCode":"200","schema":{"description":"","content":{"application/json":{"schema":{"title":"IP Warmup: IP","type":"array","example":[{"ip":"0.0.0.0","start_date":1409616000}],"refName":"IpWarmup200","modelName":"IpWarmup200","items":{"type":"object","required":["ip","start_date"],"properties":{"ip":{"type":"string","description":"The IP address."},"start_date":{"type":"integer","description":"A Unix timestamp indicating when the IP address entered warmup mode."}}}},"examples":{"response":{"value":[{"ip":"0.0.0.0","start_date":1409616000}]}}}}}},{"responseCode":"404","schema":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","description":"The errors that were encountered.","items":{"type":"object","properties":{"field":{"type":"string","nullable":true},"message":{"type":"string","description":"A message explaining why the warmup status could not be retrieved."}}}}}},"examples":{"response":{"value":{"errors":[{"field":null,"message":"resource not found"}]}}}}}}}]
```

Retrieve the warmup status for a specific IP address

```js
const client = require("@sendgrid/client");
client.setApiKey(process.env.SENDGRID_API_KEY);

const ip_address = "196.215.224.146";

const request = {
  url: `/v3/ips/warmup/${ip_address}`,
  method: "GET",
};

client
  .request(request)
  .then(([response, body]) => {
    console.log(response.statusCode);
    console.log(response.body);
  })
  .catch((error) => {
    console.error(error);
  });
```

```python
import os
from sendgrid import SendGridAPIClient


sg = SendGridAPIClient(os.environ.get("SENDGRID_API_KEY"))

ip_address = "196.215.224.146"

response = sg.client.ips.warmup._(ip_address).get()

print(response.status_code)
print(response.body)
print(response.headers)
```

```csharp
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using SendGrid;

public class Program {
    public static async Task Main() {
        string apiKey = Environment.GetEnvironmentVariable("SENDGRID_API_KEY");
        var client = new SendGridClient(apiKey);

        var ipAddress = "196.215.224.146";

        var response = await client.RequestAsync(
            method: SendGridClient.Method.GET, urlPath: $"ips/warmup/{ipAddress}");

        Console.WriteLine(response.StatusCode);
        Console.WriteLine(response.Body.ReadAsStringAsync().Result);
        Console.WriteLine(response.Headers.ToString());
    }
}
```

```java
import com.sendgrid.*;
import java.io.IOException;

public class Example {
    public static void main(String[] args) throws IOException {
        try {
            SendGrid sg = new SendGrid(System.getenv("SENDGRID_API_KEY"));
            Request request = new Request();
            request.setMethod(Method.GET);
            request.setEndpoint("/ips/warmup/196.215.224.146");
            Response response = sg.api(request);
            System.out.println(response.getStatusCode());
            System.out.println(response.getBody());
            System.out.println(response.getHeaders());
        } catch (IOException ex) {
            throw ex;
        }
    }
}
```

```go
package main

import (
	"fmt"
	"github.com/sendgrid/sendgrid-go"
	"os"
)

func main() {
	apiKey := os.Getenv("SENDGRID_API_KEY")
	host := "https://api.sendgrid.com"
	request := sendgrid.GetRequest(apiKey, "/v3/ips/warmup/196.215.224.146", host)
	request.Method = "GET"
	response, err := sendgrid.API(request)
	if err != nil {
		fmt.Println(err.Error())
		os.Exit(1)
	} else {
		fmt.Println(response.StatusCode)
		fmt.Println(response.Body)
		fmt.Println(response.Headers)
	}
}
```

```php
<?php
// Uncomment the next line if you're using a dependency loader (such as Composer) (recommended)
// require 'vendor/autoload.php';

// Uncomment next line if you're not using a dependency loader (such as Composer)
// require_once '<PATH TO>/sendgrid-php.php';

$apiKey = getenv("SENDGRID_API_KEY");
$sg = new \SendGrid($apiKey);
$ip_address = "196.215.224.146";

try {
    $response = $sg->client
        ->ips()
        ->warmup()
        ->_($ip_address)
        ->get();
    print $response->statusCode() . "\n";
    print_r($response->headers());
    print $response->body() . "\n";
} catch (Exception $ex) {
    echo "Caught exception: " . $ex->getMessage();
}
```

```ruby
require 'sendgrid-ruby'
include SendGrid

sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
ip_address = "196.215.224.146"

response = sg.client.ips.warmup._(ip_address).get()
puts response.status_code
puts response.headers
puts response.body
```

```bash
curl -X GET "https://api.sendgrid.com/v3/ips/warmup/196.215.224.146" \
--header "Authorization: Bearer $SENDGRID_API_KEY"
```
