---
name: "CURLINFO_REDIRECT_URL"
section: "3"
platform: "linux"
package: "curl"
version: "8.23.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/CURLINFO_REDIRECT_URL"
---

# CURLINFO\_REDIRECT\_URL(3)

URL a redirect would go to

## NAME

CURLINFO\_REDIRECT\_URL - URL a redirect would go to

## SYNOPSIS

```
#include <curl/curl.h>
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_REDIRECT_URL, char **urlp);
```

## DESCRIPTION

Pass a pointer to a char pointer to receive the URL a redirect *would* take you to if you would enable *[CURLOPT\_FOLLOWLOCATION(3)](/CURLOPT_FOLLOWLOCATION/3.md)*. This can come handy if you think using the built-in libcurl redirect logic is not good enough for you but you would still prefer to avoid implementing all the logic of figuring out the new URL.

This URL is also set if the *[CURLOPT\_MAXREDIRS(3)](/CURLOPT_MAXREDIRS/3.md)* limit prevented a redirect to happen.

## PROTOCOLS

This functionality affects http only

## EXAMPLE

```
int main(void)
{
  CURL *curl = curl_easy_init();
  if(curl) {
    CURLcode result;
    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
    result = curl_easy_perform(curl);
    if(result == CURLE_OK) {
      char *url = NULL;
      curl_easy_getinfo(curl, CURLINFO_REDIRECT_URL, &url);
      if(url)
        printf("Redirect to: %s\n", url);
    }
    curl_easy_cleanup(curl);
  }
}
```

## AVAILABILITY

Added in curl 7.18.2

## RETURN VALUE

*[curl\_easy\_getinfo(3)](/curl_easy_getinfo/3.md)* returns a CURLcode indicating success or error.

CURLE\_OK (0) means everything was OK, non-zero means an error occurred, see *[libcurl-errors(3)](/libcurl-errors/3.md)*.

## SEE ALSO

[**CURLINFO\_REDIRECT\_COUNT**(3)](/CURLINFO_REDIRECT_COUNT/3.md), [**CURLINFO\_REDIRECT\_TIME\_T**(3)](/CURLINFO_REDIRECT_TIME_T/3.md), [**CURLOPT\_FOLLOWLOCATION**(3)](/CURLOPT_FOLLOWLOCATION/3.md), [**curl\_easy\_getinfo**(3)](/curl_easy_getinfo/3.md), [**curl\_easy\_setopt**(3)](/curl_easy_setopt/3.md)
