Sample code for 30+ languages & platforms
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 C Downloads

C
#include <C_CkHttp.h>
#include <C_CkStringBuilder.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkHttp http;
    const char *file_id;
    const char *url;
    HCkStringBuilder sbData;

    success = FALSE;

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

    http = CkHttp_Create();

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

    file_id = "file-1H4vJq0H775gQVrjWY5jpp15";

    // Download to local file.
    url = "https://api.openai.com/v1/files/{$file_id}/content";
    CkHttp_SetUrlVar(http,"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 = CkHttp_Download(http,url,"c:/aaworkarea/mydata.jsonl");
    if (success == FALSE) {
        printf("%s\n",CkHttp_lastErrorText(http));
        printf("Failed\n");
        CkHttp_Dispose(http);
        return;
    }

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

    // Alternatively, download into a StringBuilder
    sbData = CkStringBuilder_Create();
    success = CkHttp_DownloadSb(http,url,sbData,"utf-8");
    if (success == FALSE) {
        printf("%s\n",CkHttp_lastErrorText(http));
        printf("Failed\n");
        CkHttp_Dispose(http);
        CkStringBuilder_Dispose(sbData);
        return;
    }

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

    printf("file content:\n");
    printf("%s\n",CkStringBuilder_getAsString(sbData));


    CkHttp_Dispose(http);
    CkStringBuilder_Dispose(sbData);

    }