Table of contents

 

 

 

 

Official Content
  • This documentation is valid for:

This API provides endpoints to retrieve information about available LLMs. It allows you to obtain a list of providers, their models, and model-specific details.

Check the Glob.AI OS API Reference for generic variables needed to use the API.

Endpoints

Method Path Description
GET /llm/providers Gets a list of available LLM providers (It has a parameter to return models).
GET /llm/providers/{providerName} Gets specific data for a provider, given its name.
GET /llm/providers/{providerName}/models Gets a list of models for a specific provider.
GET /llm/providers/{providerName}/models/{modelNameOrId} Gets data for a specific model, given the provider and the model's name or ID.

Authentication

All endpoints require authentication using one of the following:

  • Authorization: Bearer $OAuth_accesstoken
  • Authorization: Bearer $GEAI_ORGANIZATION_APITOKEN
  • Authorization: Bearer $GEAI_APITOKEN

For $OAuth_accesstoken, you must also include the header: project-id: $GEAI_PROJECT_ID. If a $GEAI_APITOKEN is provided, the header project-id is not required.

Additionally, all endpoints can include this optional header:

  • Accept-Language: desired language for Provider and Model description. (For example: English, Spanish, Japanese). If it is not declared, English will be set as the default language.

GET /llm/providers

Retrieves a list of available LLM providers. Optionally includes model details.

Parameters

Name Type Description
include string (‘models’) optional to include all active models for each provider.
If it is provided, the following filters can be used as well:
streaming boolean Optional
multimodal boolean Optional
toolCalling boolean Optional
functionCalling boolean Optional
detail string Optiponal (‘Summary’, ‘Full’) Default value: ‘Full’ when is not present. Defines the level of detail required

Note: The model-related filters (type, streaming, multimodal, toolCalling, functionCalling) apply only when include=models.

Request

  • Method: GET
  • Path: $BASE_URL/v3/llm/providers
  • Body: Empty

Response

A successful response (200 OK) returns a JSON object with an array of providers. Each provider object contains at least a description, interfaceType, and name. If include=models is specified, each provider will also include a models array.  Each model object contains details like contextWindow, fullName, id, isCustom, maxOutputTokens, name, priority, properties, and type.

{
  "providers": [                                  // array of provider objects
    {
      "description": "string",                    // Provider description (localized if requested)
      "friendlyName": "string",                   // Human-friendly provider name
      "interfaceType": "string",                  // Interface style (e.g., "OpenAI")
      "name": "string"                            // Provider internal name (e.g., "Anthropic")
    },
    {
      "description": "string",
      "friendlyName": "string",
      "interfaceType": "string",
      "name": "string"
    }
  ]
}

{
  "providers": [                                      // array of all providers
    {
      "name": "string",                               // System identifier for the provider (e.g., "openai", "azure")
      "friendlyName": "string",                       // Human-friendly name (e.g., "OpenAI", "Azure OpenAI")
      "description": "string",                        // Summary of the provider's positioning/capabilities
      "interfaceType": "string",                      // Underlying API interface (e.g., "openai")
      "models": [                                     // List of models available from this provider
        {
          "id": "string",                             // Model GUID (internal unique identifier)
          "name": "string",                           // Short model name (e.g., "gpt-4o")
          "fullName": "string",                       // Fully qualified model name (e.g., "openai/gpt-4o")
          "description": "string",                    // Detailed model description and release notes
          "type": "string",                           // Model interface type (e.g., "Chat")
          "contextWindow": integer,                   // Maximum input tokens supported by the model
          "maxOutputTokens": integer,                 // Maximum output tokens supported by the model
          "functionCalling": boolean,                 // Supports function calling (structured tool calls)
          "toolCalling": boolean,                     // Supports tool calling
          "streaming": boolean,                       // Supports server-sent streaming responses
          "multimodal": boolean,                      // Supports multimodal inputs (e.g., images, files, audio, video)
          "isCustom": boolean,                        // Indicates if this is a custom-deployed model
          "priority": integer,                        // Optional model ranking or routing priority
          "parameters": {},                           // Provider/model-specific tunables (e.g., temperature policies)
          "mediaCapabilities": {                      // Per-modality limits and MIME types
            "file": {
              "maxFileSizeMB": integer,               // Maximum file size in MB
              "maxFilesPerPrompt": integer,           // Max number of files allowed per request (0 = unlimited or not enforced)
              "maxPagesPerFile": integer,             // Max pages per file (0 = unlimited or not enforced)
              "mimeTypes": [ "string" ]               // Allowed file MIME types
            },
            "image": {
              "maxImageSizeMB": integer,              // Maximum image size in MB
              "maxImagesPerPrompt": integer,          // Max images allowed per request
              "mimeTypes": [ "string" ]               // Allowed image MIME types
            },
            "audio": {
              "maxAudioLengthMinutes": integer,       // Maximum audio length in minutes
              "maxFilesPerPrompt": integer,           // Max audio files per request
              "mimeTypes": [ "string" ]               // Allowed audio MIME types
            },
            "video": {
              "maxVideosPerPrompt": integer,          // Max videos per request
              "maxLengthWithAudioMinutes": integer,   // Max video length with audio (minutes)
              "maxLengthWithoutAudioMinutes": integer,// Max video length without audio (minutes)
              "mimeTypes": [ "string" ]               // Allowed video MIME types
            }
          },
          "properties": [                             
            {
              "id": "string",                         // Property GUID
              "name": "string",                       // Capability or attribute name (e.g., "SupportsToolChoice")
              "type": "string",                       // Property type label (e.g., "Boolean", "String")
              "value": "string"                       // Property value serialized as string (e.g., "true", CSV list)
            }
          ]
        }
      ]
    }
  ]
}

Error Responses

  • 401 Unauthorized: Invalid OAuth access token or API token. Response body: {"errors":[{"description":"Unauthorized","id":401}]}

  • 404 Not Found: No data available. Response body: {"errors":[{"description":"Not Found.","id":4000}]}

cURL Sample

curl -X GET '$BASE_URL/v3/llm/providers' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer $GEAI_APITOKEN'

curl -X GET '$BASE_URL/v3/llm/providers?include=models&type=Chat&functionCalling=true&toolCalling=true&multimodal=true&streaming=true' \
-H 'Content-Type: application/json' \
-H 'Accept-Language: english' \
-H 'Authorization: Bearer $GEAI_APITOKEN'

GET /llm/providers/{providerName}

Retrieves specific data for a given LLM provider.

Parameters

Name Type Description
detail string (‘Summary’, ‘Full’) Default value: ‘Full’ when is not present. Defines the level of detail required

Request

  • Method: GET
  • Path: $BASE_URL/v3/llm/providers/{providerName}
  • Body: Empty

Response  

If the endpoint execution is successful, it will return a Status 200 OK with the requested data.

{
  "description": "string",                        // Provider description
  "friendlyName": "string",                       // Human-friendly provider name
  "interfaceType": "string",                      // Interface style (e.g., "openai")
  "name": "string"                                // Provider internal name (e.g., "openai")
}

Error responses

  • 401 Unauthorized: Invalid OAuth access token or API token. Response body: {"errors":[{"description":"Unauthorized","id":401}]}
  • 404 Not Found: No data available. Response body: {"errors":[{"description":"Not Found.","id":4000}]}.

 

cURL Sample

curl -X GET '$BASE_URL/v3/llm/providers/openai' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer $GEAI_APITOKEN'

GET /llm/providers/{providerName}/models

Retrieves a list of models for a specific provider.

Parameters

Name Type Description
type string (‘Chat’, ‘Embedding’, ‘Image’, ‘Rerank’).
streaming boolean Optional
multimodal boolean Optional
toolCalling boolean Optional
functionCalling boolean Optional
detail string (‘Summary’, ‘Full’) Default value: ‘Full’ when is not present. Defines the level of detail required

 

Request

  • Method: GET
  • Path: $BASE_URL/v3/llm/providers/{providerName}/models
  • Body: Empty

Response

If the endpoint execution is successful, it will return a Status 200 OK with the requested data.

{
  "models": [
    {
      "id": "string",                               // Globant model ID (GUID)
      "name": "string",                             // Short model name (e.g., "gpt-4o")
      "fullName": "string",                         // Provider-qualified name (e.g., "openai/gpt-4o")
      "description": "string",                      // Human-readable model description
      "type": "string",                             // Model interface type (e.g., "Chat")
      "priority": integer,                          // Ordering hint for UI/catalogs
      "isCustom": boolean,                          // True if this is a custom/finetuned model
      "multimodal": boolean,                        // True if model supports multiple modalities
      "streaming": boolean,                         // True if server-sent streaming is supported
      "toolCalling": boolean,                       // True if model supports tool/function calling
      "functionCalling": boolean,                   // True if function-calling API is supported
      "contextWindow": integer,                     // Max input tokens the model can accept
      "maxOutputTokens": integer,                   // Max tokens the model can generate in one response

      "mediaCapabilities": {                        // Per-modality constraints
        "file": {
          "maxFileSizeMB": integer,                 // Max file size in MB
          "maxFilesPerPrompt": integer,             // Max number of files per prompt (0 = unlimited/not enforced)
          "maxPagesPerFile": integer,               // Max pages per file (for paged docs like PDFs)
          "mimeTypes": [ "string" ]                 // Supported file MIME types
        },
        "image": {
          "maxImageSizeMB": integer,                // Max image size in MB
          "maxImagesPerPrompt": integer,            // Max images per prompt (0 = unlimited/not enforced)
          "mimeTypes": [ "string" ]                 // Supported image MIME types
        }
      },

      "parameters": {                               // Model-tunable parameters (if any)
        "temperature": {
          "supported": boolean,                     // Whether parameter is supported
          "allowedValues": [ number ],              // Enumerated allowed values (if constrained)
          "range": [ number ]                       // Continuous range (if applicable) - may be empty
        },
        "top_p": {
          "supported": boolean                      // Whether parameter is supported
        }
        /* Additional parameter keys may appear depending on the model */
      },

      "properties": [                               // Additional provider- or system-defined properties
        {
          "id": "string",                           // Property ID (GUID)
          "name": "string",                         // Property name (e.g., "SupportsMultimodal")
          "type": "string",                         // Data type of value, e.g., "Boolean" | "String"
          "value": "string"                         // Property value encoded as string
        }
      ]
    }
  ]
}

Error responses

  • 401 Unauthorized: If the OAuth access token or API token are invalid. Response body: {"errors":[{"description":"Unauthorized","id":401}]}.
  • 404 Not Found: If there is no data available. Response body: {"errors":[{"description":"Not Found.","id":4000}]}.

cURL Sample

curl -X GET '$BASE_URL/v3/llm/providers/openai/models' \
-H 'Content-Type: application/json' \
-H 'Accept-Language: english' \
-H 'Authorization: Bearer $GEAI_APITOKEN'

GET /llm/providers/{providerName}/models/{modelNameOrId}

Retrieves data for a specific model.

Parameters

Name Type Description
detail string (‘Summary’, ‘Full’) Default value: ‘Full’ when is not present. Defines the level of detail required

 

Request

  • Method: GET
  • Path: $BASE_URL/v3/llm/providers/{providerName}/models/{modelNameOrId}
  • Body: Empty

Response

If the endpoint execution is successful, it will return a Status 200 OK with the requested data.

{
  "description": "string"     // Provider description and intended use
  "friendlyName": "string",   // Human-friendly display name
  "interfaceType": "string",  // Connector/interface identifier (e.g., "openai")
  "name": "string",           // Unique provider key (e.g., "openai")
}

Error Responses

  • 401 Unauthorized: Invalid OAuth access token or API token. Response body: {"errors":[{"description":"Unauthorized","id":401}]}
  • 404 Not Found: No data available. Response body: {"errors":[{"description":"Not Found.","id":4000}]}
  • 409 Conflict: Multiple models share the same name. Response body: {"errors":[{"description":"The model name is ambiguous.","id":4000}]} Recommendation: Use the id instead of the name.

cURL Sample

curl -X GET '$BASE_URL/v3/llm/providers/openai/models/gpt-4o' \
-H 'Content-Type: application/json' \
-H 'Accept-Language: english' \
-H 'Authorization: Bearer $GEAI_APITOKEN'

 

Last update: 2026 | © Globant S.A. All rights reserved.