CURLINFO\_XFER\_ID(3) Library Functions Manual CURLINFO\_XFER\_ID(3)

# [NAME](#NAME)

CURLINFO\_XFER\_ID - ID of the transfer

# [SYNOPSIS](#SYNOPSIS)

```
#include <curl/curl.h>
CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_XFER_ID,


                           curl_off_t *xfer_id);
```

# [DESCRIPTION](#DESCRIPTION)

Pass a pointer to a *curl\_off\_t* to receive the identifier of the current/last transfer done with the handle. Stores -1 if no transfer has been started yet for the handle.

The transfer id is unique among all transfers performed using the same connection cache. This is implicitly the case for all transfers in the same multi handle.

# [PROTOCOLS](#PROTOCOLS)

This functionality affects all supported protocols

# [EXAMPLE](#EXAMPLE)

```
int main(void)
{


  CURL *curl = curl_easy_init();


  if(curl) {


    CURLcode result;


    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");


    /* Perform the request */


    result = curl_easy_perform(curl);


    if(result == CURLE_OK) {


      curl_off_t xfer_id;


      result = curl_easy_getinfo(curl, CURLINFO_XFER_ID, &xfer_id);


      if(result == CURLE_OK) {


        printf("Transfer ID: %" CURL_FORMAT_CURL_OFF_T "\n", xfer_id);


      }


    }


  }
}
```

# [AVAILABILITY](#AVAILABILITY)

Added in curl 8.2.0

# [RETURN VALUE](#RETURN_VALUE)

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

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

# [SEE ALSO](#SEE_ALSO)

[**CURLINFO\_CONN\_ID**(3)](/man/os/curl/CURLINFO_CONN_ID.3), [**curl\_easy\_getinfo**(3)](/man/os/curl/curl_easy_getinfo.3), [**curl\_easy\_setopt**(3)](/man/os/curl/curl_easy_setopt.3)

2026-09-24 libcurl

---

Document: CURLINFO_XFER_ID(3) from curl 8.22.0-r3 (Chainguard OS)
Source: https://github.com/curl/curl.git
