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 Globant Enterprise AI 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_GAM_token (for users authenticated via GAM)
  • Authorization: Bearer $SAIA_ORGANIZATION_APITOKEN
  • Authorization: Bearer $SAIA_PROJECT_APITOKEN

GET/llm/providers

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

Request

  • Method: GET
  • Path: $BASE_URL/v2/llm/providers
  • Parameters:
    • Optional: include (‘models’) optional to include all active models for each provider.
      If it is provided, the following filters can be used as well:

      • Optional: type (‘Chat’, ‘Embedding’, ‘Image’, ‘Rerank’).
      • Optional: streaming (‘true’, ‘false’)
      • Optional: multimodal (‘true’, ‘false’)
      • Optional: toolCalling (‘true’, ‘false’)
      • Optional: functionCalling (‘true’, ‘false’)
      • Optional: detail (‘Summary’, ‘Full’) Default value: ‘Full’ when is not present. Defines the level of detail required.
  • Headers: 
    • Authorization: See Authentication section above.
    • Accept-Language: desired language for Model description. (English, Japanese, etc). If it is not present, English will be the default language.
  • 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": [
        {
            "description": "Anthropic",
            "interfaceType": "openai",
            "name": "Anthropic"
        },
        {
            "description": "AWS Bedrock",
            "interfaceType": "openai",
            "name": "awsbedrock"
        }, …
    ]
}

{
    "providers": [
        {
            "description": "OpenAI",
            "interfaceType": "openai",
            "models": [
                {
                    "contextWindow": 128000,
                    "description": "The largest GPT model designed for creative tasks and agentic planning, currently available in a research preview. | 128k context length | Release date: February 27, 2025",
                    "fullName": "openai/gpt-4.5-preview",
                    "functionCalling": true,
                    "id": "acc6e82f-697d-4261-8d2e-bf46a52a41fe",
                    "isCustom": false,
                    "maxOutputTokens": 16384,
                    "multimodal": true,
                    "name": "gpt-4.5-preview",
                    "priority": 2600,
                    "properties": [
                        {
                            "id": "2792217b-491d-11ef-a3e1-c4cbe126e5a6",
                            "name": "Streams",
                            "type": "Boolean",
                            "value": "true"
                        },
                        {
                            "id": "57a66a16-df31-4b5a-9365-9929dd7054a5",
                            "name": "SupportsFunctionCalling",
                            "type": "Boolean",
                            "value": "true"
                        },
                        {
                            "id": "a6c6702c-541f-11ef-a72d-c4cbe126e5a6",
                            "name": "SupportedFileExtensions",
                            "type": "String",
                            "value": "jpeg,jpg,gif,png,pdf,txt"
                        },
                        {
                            "id": "b1dc801d-2abe-46c3-97a6-99ff45e51c6d",
                            "name": "SupportsToolCalling",
                            "type": "Boolean",
                            "value": "true"
                        },
                        {
                            "id": "b3e24ec7-541f-11ef-a72d-c4cbe126e5a6",
                            "name": "SupportedCategories",
                            "type": "String",
                            "value": "Image,Text"
                        },
                        {
                            "id": "bfb51592-541f-11ef-a72d-c4cbe126e5a6",
                            "name": "SupportsMultimodal",
                            "type": "Boolean",
                            "value": "true"
                        }
                    ],
                    "streaming": true,
                    "toolCalling": true,
                    "type": "Chat"
                }
            ],
            "name": "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/v2/llm/providers' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer OAuth token OR OrganizationApiToken OR ProjectApiToken' \

curl -X GET '$BASE_URL/v2/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 OAuth token OR OrganizationApiToken OR ProjectApiToken' \

GET/llm/providers/{providerName}

Retrieves specific data for a given LLM provider.

Request

  • Method: GET
  • Path: $BASE_URL/v2/llm/providers/{providerName}
  • Parameters: 
    • Optional: detail (‘Summary’, ‘Full’) Default value: ‘Full’ when is not present. Defines the level of detail required.
  • Headers: See Authentication section above.
  • Body: Empty

Response  

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

{
    "description": "OpenAI",
    "interfaceType": "openai",
    "name": "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/v2/llm/providers/openai' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer OAuth token OR OrganizationApiToken OR ProjectApiToken' \

GET/llm/providers/{providerName}/models

Retrieves a list of models for a specific provider.

Request

  • Method: GET
  • Path: $BASE_URL/v2/llm/providers/{providerName}/models
  • Parameters:
    • Optional: type (‘Chat’, ‘Embedding’, ‘Image’, ‘Rerank’).
    • Optional: streaming (‘true’, ‘false’)
    • Optional: multimodal (‘true’, ‘false’)
    • Optional: toolCalling (‘true’, ‘false’)
    • Optional: functionCalling (‘true’, ‘false’)
    • Optional: detail (‘Summary’, ‘Full’) Default value: ‘Full’ when is not present. Defines the level of detail required.
  • Headers: 
    • Authorization: See Authentication section above.
    • Accept-Language: desired language for Model description. (English, Japanese, etc). If it is not present, English will be the default language.
  • Body: Empty

Response

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

{
    "models": [
        {
            "contextWindow": 0,
            "fullName": "openai/text-embedding-ada-002",
            "id": "02985087-fc7c-4797-a0a8-73d0f621b21f",
            "isCustom": false,
            "maxOutputTokens": 0,
            "name": "text-embedding-ada-002",
            "priority": 100,
            "properties": [
                {
                    "id": "72ecc8cb-7e58-4cec-a552-71e331274507",
                    "name": "SupportedFileExtensions",
                    "type": "String",
                    "value": "txt,pdf"
                },
                {
                    "id": "96214c43-7e5d-43f0-b36f-c30a8321b80c",
                    "name": "SupportsMultimodal",
                    "type": "Boolean",
                    "value": "false"
                },
                {
                    "id": "f30100e5-070c-45c6-b85d-c9f829c0e649",
                    "name": "SupportedCategories",
                    "type": "String",
                    "value": "Text"
                }
            ],
            "type": "Embedding"
        }, …
    ]
}

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/v2/llm/providers/openai/models' \
-H 'Content-Type: application/json' \
-H 'Accept-Language: english' \
-H 'Authorization: Bearer OAuth token OR OrganizationApiToken OR ProjectApiToken' \

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

Retrieves data for a specific model.

Request

  • Method: GET
  • Path: $BASE_URL/v2/llm/providers/{providerName}/models/{modelNameOrId}
  • Parameters: 
    • Optional: detail (‘Summary’, ‘Full’) Default value: ‘Full’ when is not present. Defines the level of detail required.
  • Headers: 
    • Authorization: See Authentication section above.
    • Accept-Language: desired language for Model description. (English, Japanese, etc). If it is not present, English will be the default language.
  • Body: Empty

Response

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

{
        "contextWindow": 128000,
"description": "OpenAI's high-intelligence flagship model for complex, multi-step tasks.",
    "fullName": "openai/gpt-4o",
    "functionCalling": true,
    "id": "48a34d13-04dc-4aee-9db7-310ad6996271",
    "isCustom": false,
    "maxOutputTokens": 16384,
    "multimodal": true,
    "name": "gpt-4o",
    "priority": 3000,
    "properties": [
        {
            "id": "72ecc8cb-7e58-4cec-a552-71e331274507",
            "name": "SupportedFileExtensions",
            "type": "String",
            "value": "jpeg,jpg,gif,png,pdf,txt"
        },
        {
            "id": "96214c43-7e5d-43f0-b36f-c30a8321b80c",
            "name": "SupportsMultimodal",
            "type": "Boolean",
            "value": "true"
        },
        {
            "id": "f30100e5-070c-45c6-b85d-c9f829c0e649",
            "name": "SupportedCategories",
            "type": "String",
            "value": "Image,Text"
        }
    ],
    "streaming": true,
    "toolCalling": true,
    "type": "Chat"
}

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/v2/llm/providers/openai/models/gpt-4o' \
-H 'Content-Type: application/json' \
-H 'Accept-Language: english' \
-H 'Authorization: Bearer OAuth token OR OrganizationApiToken OR ProjectApiToken' \

 

Last update: March 2025 | © GeneXus. All rights reserved. GeneXus Powered by Globant