Sample code for 30+ languages & platforms
PureBasic

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 PureBasic Downloads

PureBasic
IncludeFile "CkAi.pb"
IncludeFile "CkStringTable.pb"

Procedure ChilkatExample()

    success.i = 0

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

    ai.i = CkAi::ckCreate()
    If ai.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ;  The provider can be "openai", "google", "claude", "deepseek", "xai", or "perplexity".
    ;  Support for additional providers will be added in future versions of Chilkat.
    CkAi::setCkProvider(ai, "openai")

    ;  Use your provider's API key.
    CkAi::setCkApiKey(ai, "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.i = CkStringTable::ckCreate()
    If st.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkAi::ckGetModels(ai,st)
    If success = 0
        Debug CkAi::ckLastErrorText(ai)
        CkAi::ckDispose(ai)
        CkStringTable::ckDispose(st)
        ProcedureReturn
    EndIf

    count.i = CkStringTable::ckCount(st)
    i.i = 0
    While i < count
        Debug CkStringTable::ckStringAt(st,i)
        i = i + 1
    Wend

    ;  Sample output:
    ;  (The exact list varies by account, and changes as providers add and retire models.)

    ;  babbage-002
    ;  chatgpt-4o-latest
    ;  codex-mini-latest
    ;  dall-e-2
    ;  dall-e-3
    ;  davinci-002
    ;  daybreak-blue-latest
    ;  daybreak-red-latest
    ;  gpt-3.5-turbo
    ;  gpt-3.5-turbo-instruct
    ;  gpt-4
    ;  gpt-4-turbo
    ;  gpt-4.1
    ;  gpt-4.1-mini
    ;  gpt-4.1-nano
    ;  gpt-4o
    ;  gpt-4o-audio-preview
    ;  gpt-4o-mini
    ;  gpt-4o-mini-transcribe
    ;  gpt-4o-mini-tts
    ;  gpt-4o-transcribe
    ;  gpt-5
    ;  gpt-5-chat-latest
    ;  gpt-5-codex
    ;  gpt-5-mini
    ;  gpt-5-nano
    ;  gpt-5.3-chat-latest
    ;  gpt-5.4-mini
    ;  gpt-5.4-nano
    ;  gpt-5.4-pro
    ;  gpt-5.5-pro
    ;  gpt-5.6-cyber
    ;  gpt-5.6-luna
    ;  gpt-5.6-sol
    ;  gpt-5.6-terra
    ;  gpt-audio
    ;  gpt-image-1
    ;  gpt-image-2
    ;  gpt-live-transcribe
    ;  gpt-realtime
    ;  gpt-realtime-1.5
    ;  gpt-realtime-2
    ;  gpt-realtime-2.1
    ;  gpt-realtime-2.1-mini
    ;  gpt-realtime-mini
    ;  gpt-realtime-translate
    ;  gpt-realtime-whisper
    ;  gpt-transcribe
    ;  o1
    ;  o1-pro
    ;  o3
    ;  o3-mini
    ;  o4-mini
    ;  o4-mini-deep-research
    ;  omni-moderation-latest
    ;  text-embedding-3-large
    ;  text-embedding-3-small
    ;  text-embedding-ada-002
    ;  tts-1
    ;  tts-1-hd
    ;  whisper-1


    CkAi::ckDispose(ai)
    CkStringTable::ckDispose(st)


    ProcedureReturn
EndProcedure