elastic search url date

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>

// Function to perform HTTP GET request using libcurl
size_t write_callback(void contents, size_t size, size_t nmemb, void userp) {
    size_t realsize = size * nmemb;
    char response_ptr = (char )userp;

    response_ptr = realloc(response_ptr, realsize + 1);
    if (*response_ptr == NULL) {
        fprintf(stderr, "Failed to allocate memory.\n");
        exit(EXIT_FAILURE);
    }

    memcpy(&(*response_ptr)[0], contents, realsize);
    (*response_ptr)[realsize] = 0;

    return realsize;
}

int main(void) {
    CURL *curl;
    CURLcode res;

    // Elasticsearch URL with date filter
    const char *url = "http://your_elasticsearch_server/your_index/_search?q=@timestamp:[2023-01-01 TO 2023-12-31]";

    // Initialize libcurl
    curl_global_init(CURL_GLOBAL_DEFAULT);
    curl = curl_easy_init();

    // Set the URL for the request
    curl_easy_setopt(curl, CURLOPT_URL, url);

    // Set the callback function to handle the response
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);

    // Buffer to store the response data
    char *response_data = NULL;

    // Set the userp parameter for the callback function
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response_data);

    // Perform the HTTP GET request
    res = curl_easy_perform(curl);

    // Check for errors
    if (res != CURLE_OK) {
        fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
    } else {
        // Print the response data
        printf("%s\n", response_data);
    }

    // Clean up resources
    curl_easy_cleanup(curl);
    curl_global_cleanup();

    // Free the allocated memory for the response data
    free(response_data);

    return 0;
}