Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

List AI Models

See more AI Examples

Returns a sorted list of AI models available to your account for the specified AI provider, such as GPT-4o and GPT-5.

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
program ChilkatDemo;

// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  SysUtils,
  CkDllLoader,
  Chilkat.Ai,
  Chilkat.StringTable;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  success: Boolean;
  ai: TAi;
  st: TStringTable;
  count: Integer;
  i: Integer;

begin
  success := False;

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

  ai := TAi.Create;

  //  The provider can be "openai", "google", "claude", "deepseek", "xai", or "perplexity".
  //  Support for additional providers will be added in future versions of Chilkat.
  ai.Provider := 'openai';

  //  Use your provider's API key.
  ai.ApiKey := 'MY_API_KEY';

  //  Note: Chilkat currently uses a hard-coded list of available models for Perplexity and XAi (Grok) 
  //  because these AI providers do not offer an API endpoint to list models. 
  //  If they introduce such a REST API call in the future, Chilkat will update to incorporate it in a later version.

  st := TStringTable.Create;
  success := ai.GetModels(st);
  if (success = False) then
    begin
      WriteLn(ai.LastErrorText);
      Exit;
    end;

  count := st.Count;
  i := 0;
  while i < count do
    begin
      WriteLn(st.StringAt(i));
      i := i + 1;
    end;

  //  Sample output:

  //  babbage-002
  //  chatgpt-4o-latest
  //  codex-mini-latest
  //  dall-e-2
  //  dall-e-3
  //  davinci-002
  //  gpt-3.5-turbo
  //  gpt-3.5-turbo-0125
  //  gpt-3.5-turbo-1106
  //  gpt-3.5-turbo-16k
  //  gpt-3.5-turbo-instruct
  //  gpt-3.5-turbo-instruct-0914
  //  gpt-4
  //  gpt-4-0125-preview
  //  gpt-4-0613
  //  gpt-4-1106-preview
  //  gpt-4-turbo
  //  gpt-4-turbo-2024-04-09
  //  gpt-4-turbo-preview
  //  gpt-4.1
  //  gpt-4.1-2025-04-14
  //  gpt-4.1-mini
  //  gpt-4.1-mini-2025-04-14
  //  gpt-4.1-nano
  //  gpt-4.1-nano-2025-04-14
  //  gpt-4o
  //  gpt-4o-2024-05-13
  //  gpt-4o-2024-08-06
  //  gpt-4o-2024-11-20
  //  gpt-4o-audio-preview
  //  gpt-4o-audio-preview-2024-10-01
  //  gpt-4o-audio-preview-2024-12-17
  //  gpt-4o-audio-preview-2025-06-03
  //  gpt-4o-mini
  //  gpt-4o-mini-2024-07-18
  //  gpt-4o-mini-audio-preview
  //  gpt-4o-mini-audio-preview-2024-12-17
  //  gpt-4o-mini-realtime-preview
  //  gpt-4o-mini-realtime-preview-2024-12-17
  //  gpt-4o-mini-search-preview
  //  gpt-4o-mini-search-preview-2025-03-11
  //  gpt-4o-mini-transcribe
  //  gpt-4o-mini-tts
  //  gpt-4o-realtime-preview
  //  gpt-4o-realtime-preview-2024-10-01
  //  gpt-4o-realtime-preview-2024-12-17
  //  gpt-4o-realtime-preview-2025-06-03
  //  gpt-4o-search-preview
  //  gpt-4o-search-preview-2025-03-11
  //  gpt-4o-transcribe
  //  gpt-5
  //  gpt-5-2025-08-07
  //  gpt-5-chat-latest
  //  gpt-5-codex
  //  gpt-5-mini
  //  gpt-5-mini-2025-08-07
  //  gpt-5-nano
  //  gpt-5-nano-2025-08-07
  //  gpt-audio
  //  gpt-audio-2025-08-28
  //  gpt-image-1
  //  gpt-realtime
  //  gpt-realtime-2025-08-28
  //  o1
  //  o1-2024-12-17
  //  o1-mini
  //  o1-mini-2024-09-12
  //  o1-pro
  //  o1-pro-2025-03-19
  //  o3
  //  o3-2025-04-16
  //  o3-mini
  //  o3-mini-2025-01-31
  //  o4-mini
  //  o4-mini-2025-04-16
  //  o4-mini-deep-research
  //  o4-mini-deep-research-2025-06-26
  //  omni-moderation-2024-09-26
  //  omni-moderation-latest
  //  text-embedding-3-large
  //  text-embedding-3-small
  //  text-embedding-3-small-okan-test
  //  text-embedding-ada-002
  //  tts-1
  //  tts-1-1106
  //  tts-1-hd
  //  tts-1-hd-1106
  //  whisper-1


  ai.Free;
  st.Free;

end;

// ---------------------------------------------------------------------------

begin

  try
    RunDemo;
  except
    on E: Exception do
      WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
  end;

  WriteLn;
  {$IFDEF MSWINDOWS}
  WriteLn('Press Enter to exit...');
  ReadLn;
  {$ENDIF}
end.