CURLINFO_RETRY_AFTER(3)

πŸ’… CURLINFO_RETRY_AFTER(3) β€” the manual page, bestie edition

okay so real talk: this is the CURLINFO_RETRY_AFTER(3) page from the libcurl manual, and it's genuinely one of the comfiest little info calls out there. Let's get into it ✨

🌸 NAME 🌸

CURLINFO_RETRY_AFTER β€” returns the Retry-After retry delay πŸ•

πŸŽ€ SYNOPSIS πŸŽ€

#include <curl/curl.h>

CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_RETRY_AFTER,
                           curl_off_t *retry);

πŸ’– DESCRIPTION πŸ’–

So what you do is: pass a pointer to a curl_off_t variable, and it gets filled in with the number of seconds the HTTP server suggests the client should wait until the next request is issued. That info comes straight from the "Retry-After:" header. iykyk πŸ‘‘

Now here's the cute part β€” the HTTP header might contain a fixed date string, but CURLINFO_RETRY_AFTER(3) always returns the number of seconds to wait. Always. Or zero, if there was no header or the header couldn't be parsed. No cap, that's the whole deal 🫢

🚨 okay bestie, historical tea: this option used to return a negative wait time if the server provided a date in the past. Since 8.12.0, a negative wait time is returned as zero. In any case we recommend checking that the wait time is within an acceptable range for your circumstance. literally please do this, it's giving self-care πŸ’…

⭐ DEFAULT ⭐

Zero if there was no header.

🌈 PROTOCOLS 🌈

This functionality affects all supported protocols ✨ (yes, all of them, main character energy)

πŸ¦‹ 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) {
      curl_off_t wait = 0;
      curl_easy_getinfo(curl, CURLINFO_RETRY_AFTER, &wait);
      if(wait)
        printf("Wait for %" CURL_FORMAT_CURL_OFF_T " seconds\n", wait);
    }
    curl_easy_cleanup(curl);
  }
}

πŸ‘‘ AVAILABILITY πŸ‘‘

Added in curl 7.66.0 β€” vintage but iconic πŸŽ€

πŸ’œ RETURN VALUE πŸ’œ

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). simple as that, no drama 😌

🌸 SEE ALSO 🌸


aaaand that's the page!! πŸ’– brought to you by libcurl, dated 2026-10-12, and yeah β€” this whole thing is literally CURLINFO_RETRY_AFTER(3). go retry something, but politely, and only after the number of seconds the server told you πŸ•βœ¨πŸ¦‹

πŸ“¦ where this page comes from