Sample code for 30+ languages & platforms
Unicode C

OpenAI (ChatGPT) Retrieve File Content

See more OpenAI ChatGPT Examples

Demonstrate how to retrieve the content of a file from OpenAI. Shows how to download to a file, or instead download to a string in memory.

Chilkat Unicode C Downloads

Unicode C
#include <C_CkHttpW.h>
#include <C_CkStringBuilderW.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkHttpW http;
    const wchar_t *file_id;
    const wchar_t *url;
    HCkStringBuilderW sbData;

    success = FALSE;

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    http = CkHttpW_Create();

    // Adds the "Authorization: Bearer $OPENAI_API_KEY" header.
    // This is NOT a real key.  Change the "sk-vi...." to your own key.
    CkHttpW_putAuthToken(http,L"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");

    file_id = L"file-1H4vJq0H775gQVrjWY5jpp15";

    // Download to local file.
    url = L"https://api.openai.com/v1/files/{$file_id}/content";
    CkHttpW_SetUrlVar(http,L"file_id",file_id);

    // Note: Free accounts are not able to download files.
    // If using a free account, you'll receive an error response:  "To help mitigate abuse, downloading of fine-tune training files is disabled for free accounts."
    success = CkHttpW_Download(http,url,L"c:/aaworkarea/mydata.jsonl");
    if (success == FALSE) {
        wprintf(L"%s\n",CkHttpW_lastErrorText(http));
        wprintf(L"Failed\n");
        CkHttpW_Dispose(http);
        return;
    }

    wprintf(L"Downloaded OpenAI file to a local file.\n");

    // Alternatively, download into a StringBuilder
    sbData = CkStringBuilderW_Create();
    success = CkHttpW_DownloadSb(http,url,sbData,L"utf-8");
    if (success == FALSE) {
        wprintf(L"%s\n",CkHttpW_lastErrorText(http));
        wprintf(L"Failed\n");
        CkHttpW_Dispose(http);
        CkStringBuilderW_Dispose(sbData);
        return;
    }

    wprintf(L"Downloaded OpenAI file to a StringBuilder\n");

    wprintf(L"file content:\n");
    wprintf(L"%s\n",CkStringBuilderW_getAsString(sbData));


    CkHttpW_Dispose(http);
    CkStringBuilderW_Dispose(sbData);

    }