Skip to main content
Glama

AIsa SEO & AI Visibility

Live Perplexity LLM Responses

post_dataforseo_ai_perplexity_llm_responses_live
Destructive

‌‌ Live Perplexity LLM Responses endpoint allows you to retrieve structured responses from a specific Perplexity AI model, based on the input parameters.

Usage-based billing; Default request estimate: $0.0163 USD (not a fixed price). Account-specific pricing and final settlement may differ.

Input Schema

NameRequiredDescriptionDefault
bodyNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / body / items / oneOf
      Previous value: -[
      -  {
      -    "example": [
      -      {
      -        "max_output_tokens": 200,
      -        "message_chain": [
      -          {
      -            "message": "Hello, what’s up?",
      -            "role": "user"
      -          },
      -          {
      -            "message": "Hello! I’m doing well, thank you. How can I assist you today? Are there any specific topics or projects you’d like to discuss in our meeting?",
      -            "role": "ai"
      -          }
      -        ],
      -        "model_name": "sonar",
      -        "system_message": "communicate as if we are in a business meeting",
      -        "temperature": 0.3,
      -        "top_p": 0.5,
      -        "user_prompt": "provide information on how relevant the amusement park business is in France now",
      -        "web_search_country_iso_code": "FR"
      -      }
      -    ],
      -    "properties": {
      -      "max_output_tokens": {
      -        "description": "<em>maximum number of tokens in the AI response</em><br>optional field<br>minimum value: <code>1</code><br>maximum value: <code>4096</code>;<br>default value: <code>2048</code>;<br><strong>Note:</strong> if the reasoning model is specified in the request, the output token count may exceed the specified <code>max_output_tokens</code> limit",
      -        "type": [
      -          "integer",
      -          "null"
      -        ]
      -      },
      -      "message_chain": {
      -        "description": "conversation history\noptional field\narray of message objects representing previous conversation turns;\neach object must contain:\nrole string with either user or ai role;\nmessage string with message content (max 500 characters);\nyou can specify maximum of 10 message objects in the array;\nNote: for Perplexity models, messages must strictly alternate between user and AI roles (user → ai);\nexample:\n\"message_chain\": [{\"role\":\"user\",\"message\":\"Hello, what’s up?\"},{\"role\":\"ai\",\"message\":\"Hello! I’m doing well, thank you. How can I assist you today?\"}]",
      -        "items": {
      -          "oneOf": [
      -            {
      -              "properties": {
      -                "message": {
      -                  "description": "message text",
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "role": {
      -                  "description": "role of the user from whom the message originates",
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                }
      -              },
      -              "type": "object"
      -            }
      -          ],
      -          "type": [
      -            "object",
      -            "null"
      -          ]
      -        },
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "model_name": {
      -        "description": "<em>name of the AI model</em><br><strong>required field</strong><br><code>model_name</code >consists of the actual model name and version name;<br>if the basic model name is specified, its latest version will be set by default;<br>you can receive the list of available LLM models by making a separate request to the following endpoint: <code>https://api.dataforseo.com/v3/ai_optimization/perplexity/llm_responses/models</code>",
      -        "type": "string"
      -      },
      -      "system_message": {
      -        "description": "<em>instructions for the AI behavior</em><br>optional field<br>defines the AI's role, tone, or specific behavior <br>you can specify <strong>up to 500 characters</strong> in the <code>system_message</code> field",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "tag": {
      -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "temperature": {
      -        "description": "<em>randomness of the AI response</em><br>optional field<br>higher values make output more diverse <br>lower values make output more focused<br>minimum value: <code>0</code><br>maximum value: <code>1.9</code><br>default value: <code>0.77</code>",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "top_p": {
      -        "description": "<em>diversity of the AI response</em><br>optional field <br>controls diversity of the response by limiting token selection<br>minimum value: <code>0</code><br>maximum value: <code>1</code> <br>default value: <code>0.9</code>",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "user_prompt": {
      -        "description": "<em>prompt for the AI model</em><br><strong>required field</strong><br>the question or task you want to send to the AI model;<br>you can specify <strong>up to 500 characters</strong> in the <code>user_prompt</code> field",
      -        "type": "string"
      -      },
      -      "web_search_country_iso_code": {
      -        "description": "<em>country code for web search localization</em><br>optional field<br>specify the country  ISO code to get localized web search results<br><strong>Note:</strong> available only for Perplexity Sonar models<br>example: <code>US</code>",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "max_output_tokens": {
      +        "description": "<em>maximum number of tokens in the AI response</em><br>optional field<br>minimum value: <code>1</code><br>maximum value: <code>4096</code>;<br>default value: <code>2048</code>;<br><strong>Note:</strong> if the reasoning model is specified in the request, the output token count may exceed the specified <code>max_output_tokens</code> limit",
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      },
      +      "message_chain": {
      +        "description": "conversation history\noptional field\narray of message objects representing previous conversation turns;\neach object must contain:\nrole string with either user or ai role;\nmessage string with message content (max 500 characters);\nyou can specify maximum of 10 message objects in the array;\nNote: for Perplexity models, messages must strictly alternate between user and AI roles (user → ai);\nexample:\n\"message_chain\": [{\"role\":\"user\",\"message\":\"Hello, what’s up?\"},{\"role\":\"ai\",\"message\":\"Hello! I’m doing well, thank you. How can I assist you today?\"}]",
      +        "items": {
      +          "oneOf": [
      +            {
      +              "properties": {
      +                "message": {
      +                  "description": "message text",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "role": {
      +                  "description": "role of the user from whom the message originates",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            }
      +          ],
      +          "type": [
      +            "object",
      +            "null"
      +          ]
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "model_name": {
      +        "description": "<em>name of the AI model</em><br><strong>required field</strong><br><code>model_name</code >consists of the actual model name and version name;<br>if the basic model name is specified, its latest version will be set by default;<br>you can receive the list of available LLM models by making a separate request to the following endpoint: <code>https://api.dataforseo.com/v3/ai_optimization/perplexity/llm_responses/models</code>",
      +        "type": "string"
      +      },
      +      "system_message": {
      +        "description": "<em>instructions for the AI behavior</em><br>optional field<br>defines the AI's role, tone, or specific behavior <br>you can specify <strong>up to 500 characters</strong> in the <code>system_message</code> field",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "tag": {
      +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "temperature": {
      +        "description": "<em>randomness of the AI response</em><br>optional field<br>higher values make output more diverse <br>lower values make output more focused<br>minimum value: <code>0</code><br>maximum value: <code>1.9</code><br>default value: <code>0.77</code>",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "top_p": {
      +        "description": "<em>diversity of the AI response</em><br>optional field <br>controls diversity of the response by limiting token selection<br>minimum value: <code>0</code><br>maximum value: <code>1</code> <br>default value: <code>0.9</code>",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "user_prompt": {
      +        "description": "<em>prompt for the AI model</em><br><strong>required field</strong><br>the question or task you want to send to the AI model;<br>you can specify <strong>up to 500 characters</strong> in the <code>user_prompt</code> field",
      +        "type": "string"
      +      },
      +      "web_search_country_iso_code": {
      +        "description": "<em>country code for web search localization</em><br>optional field<br>specify the country  ISO code to get localized web search results<br><strong>Note:</strong> available only for Perplexity Sonar models<br>example: <code>US</code>",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
  2. Changed2 schema fields changed
    • removedInput schema / properties / body / items / anyOf
      Removed value: -[
      -  {
      -    "example": [
      -      {
      -        "max_output_tokens": 200,
      -        "message_chain": [
      -          {
      -            "message": "Hello, what’s up?",
      -            "role": "user"
      -          },
      -          {
      -            "message": "Hello! I’m doing well, thank you. How can I assist you today? Are there any specific topics or projects you’d like to discuss in our meeting?",
      -            "role": "ai"
      -          }
      -        ],
      -        "model_name": "sonar",
      -        "system_message": "communicate as if we are in a business meeting",
      -        "temperature": 0.3,
      -        "top_p": 0.5,
      -        "user_prompt": "provide information on how relevant the amusement park business is in France now",
      -        "web_search_country_iso_code": "FR"
      -      }
      -    ],
      -    "properties": {
      -      "max_output_tokens": {
      -        "description": "<em>maximum number of tokens in the AI response</em><br>optional field<br>minimum value: <code>1</code><br>maximum value: <code>4096</code>;<br>default value: <code>2048</code>;<br><strong>Note:</strong> if the reasoning model is specified in the request, the output token count may exceed the specified <code>max_output_tokens</code> limit",
      -        "type": [
      -          "integer",
      -          "null"
      -        ]
      -      },
      -      "message_chain": {
      -        "description": "conversation history\noptional field\narray of message objects representing previous conversation turns;\neach object must contain:\nrole string with either user or ai role;\nmessage string with message content (max 500 characters);\nyou can specify maximum of 10 message objects in the array;\nNote: for Perplexity models, messages must strictly alternate between user and AI roles (user → ai);\nexample:\n\"message_chain\": [{\"role\":\"user\",\"message\":\"Hello, what’s up?\"},{\"role\":\"ai\",\"message\":\"Hello! I’m doing well, thank you. How can I assist you today?\"}]",
      -        "items": {
      -          "anyOf": [
      -            {
      -              "properties": {
      -                "message": {
      -                  "description": "message text",
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "role": {
      -                  "description": "role of the user from whom the message originates",
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                }
      -              },
      -              "type": "object"
      -            }
      -          ],
      -          "type": [
      -            "object",
      -            "null"
      -          ]
      -        },
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "model_name": {
      -        "description": "<em>name of the AI model</em><br><strong>required field</strong><br><code>model_name</code >consists of the actual model name and version name;<br>if the basic model name is specified, its latest version will be set by default;<br>you can receive the list of available LLM models by making a separate request to the following endpoint: <code>https://api.dataforseo.com/v3/ai_optimization/perplexity/llm_responses/models</code>",
      -        "type": "string"
      -      },
      -      "system_message": {
      -        "description": "<em>instructions for the AI behavior</em><br>optional field<br>defines the AI's role, tone, or specific behavior <br>you can specify <strong>up to 500 characters</strong> in the <code>system_message</code> field",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "tag": {
      -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "temperature": {
      -        "description": "<em>randomness of the AI response</em><br>optional field<br>higher values make output more diverse <br>lower values make output more focused<br>minimum value: <code>0</code><br>maximum value: <code>1.9</code><br>default value: <code>0.77</code>",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "top_p": {
      -        "description": "<em>diversity of the AI response</em><br>optional field <br>controls diversity of the response by limiting token selection<br>minimum value: <code>0</code><br>maximum value: <code>1</code> <br>default value: <code>0.9</code>",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "user_prompt": {
      -        "description": "<em>prompt for the AI model</em><br><strong>required field</strong><br>the question or task you want to send to the AI model;<br>you can specify <strong>up to 500 characters</strong> in the <code>user_prompt</code> field",
      -        "type": "string"
      -      },
      -      "web_search_country_iso_code": {
      -        "description": "<em>country code for web search localization</em><br>optional field<br>specify the country  ISO code to get localized web search results<br><strong>Note:</strong> available only for Perplexity Sonar models<br>example: <code>US</code>",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  }
      -]
    • addedInput schema / properties / body / items / oneOf
      Added value: +[
      +  {
      +    "example": [
      +      {
      +        "max_output_tokens": 200,
      +        "message_chain": [
      +          {
      +            "message": "Hello, what’s up?",
      +            "role": "user"
      +          },
      +          {
      +            "message": "Hello! I’m doing well, thank you. How can I assist you today? Are there any specific topics or projects you’d like to discuss in our meeting?",
      +            "role": "ai"
      +          }
      +        ],
      +        "model_name": "sonar",
      +        "system_message": "communicate as if we are in a business meeting",
      +        "temperature": 0.3,
      +        "top_p": 0.5,
      +        "user_prompt": "provide information on how relevant the amusement park business is in France now",
      +        "web_search_country_iso_code": "FR"
      +      }
      +    ],
      +    "properties": {
      +      "max_output_tokens": {
      +        "description": "<em>maximum number of tokens in the AI response</em><br>optional field<br>minimum value: <code>1</code><br>maximum value: <code>4096</code>;<br>default value: <code>2048</code>;<br><strong>Note:</strong> if the reasoning model is specified in the request, the output token count may exceed the specified <code>max_output_tokens</code> limit",
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      },
      +      "message_chain": {
      +        "description": "conversation history\noptional field\narray of message objects representing previous conversation turns;\neach object must contain:\nrole string with either user or ai role;\nmessage string with message content (max 500 characters);\nyou can specify maximum of 10 message objects in the array;\nNote: for Perplexity models, messages must strictly alternate between user and AI roles (user → ai);\nexample:\n\"message_chain\": [{\"role\":\"user\",\"message\":\"Hello, what’s up?\"},{\"role\":\"ai\",\"message\":\"Hello! I’m doing well, thank you. How can I assist you today?\"}]",
      +        "items": {
      +          "oneOf": [
      +            {
      +              "properties": {
      +                "message": {
      +                  "description": "message text",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "role": {
      +                  "description": "role of the user from whom the message originates",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            }
      +          ],
      +          "type": [
      +            "object",
      +            "null"
      +          ]
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "model_name": {
      +        "description": "<em>name of the AI model</em><br><strong>required field</strong><br><code>model_name</code >consists of the actual model name and version name;<br>if the basic model name is specified, its latest version will be set by default;<br>you can receive the list of available LLM models by making a separate request to the following endpoint: <code>https://api.dataforseo.com/v3/ai_optimization/perplexity/llm_responses/models</code>",
      +        "type": "string"
      +      },
      +      "system_message": {
      +        "description": "<em>instructions for the AI behavior</em><br>optional field<br>defines the AI's role, tone, or specific behavior <br>you can specify <strong>up to 500 characters</strong> in the <code>system_message</code> field",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "tag": {
      +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "temperature": {
      +        "description": "<em>randomness of the AI response</em><br>optional field<br>higher values make output more diverse <br>lower values make output more focused<br>minimum value: <code>0</code><br>maximum value: <code>1.9</code><br>default value: <code>0.77</code>",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "top_p": {
      +        "description": "<em>diversity of the AI response</em><br>optional field <br>controls diversity of the response by limiting token selection<br>minimum value: <code>0</code><br>maximum value: <code>1</code> <br>default value: <code>0.9</code>",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "user_prompt": {
      +        "description": "<em>prompt for the AI model</em><br><strong>required field</strong><br>the question or task you want to send to the AI model;<br>you can specify <strong>up to 500 characters</strong> in the <code>user_prompt</code> field",
      +        "type": "string"
      +      },
      +      "web_search_country_iso_code": {
      +        "description": "<em>country code for web search localization</em><br>optional field<br>specify the country  ISO code to get localized web search results<br><strong>Note:</strong> available only for Perplexity Sonar models<br>example: <code>US</code>",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
  3. Changed7 schema fields changed
    • addedInput schema / properties / body / example
      Added value: +[
      +  {
      +    "max_output_tokens": 200,
      +    "message_chain": [
      +      {
      +        "message": "Hello, what’s up?",
      +        "role": "user"
      +      },
      +      {
      +        "message": "Hello! I’m doing well, thank you. How can I assist you today? Are there any specific topics or projects you’d like to discuss in our meeting?",
      +        "role": "ai"
      +      }
      +    ],
      +    "model_name": "sonar",
      +    "system_message": "communicate as if we are in a business meeting",
      +    "temperature": 0.3,
      +    "top_p": 0.5,
      +    "user_prompt": "provide information on how relevant the amusement park business is in France now",
      +    "web_search_country_iso_code": "FR"
      +  }
      +]
    • addedInput schema / properties / body / items / anyOf
      Added value: +[
      +  {
      +    "example": [
      +      {
      +        "max_output_tokens": 200,
      +        "message_chain": [
      +          {
      +            "message": "Hello, what’s up?",
      +            "role": "user"
      +          },
      +          {
      +            "message": "Hello! I’m doing well, thank you. How can I assist you today? Are there any specific topics or projects you’d like to discuss in our meeting?",
      +            "role": "ai"
      +          }
      +        ],
      +        "model_name": "sonar",
      +        "system_message": "communicate as if we are in a business meeting",
      +        "temperature": 0.3,
      +        "top_p": 0.5,
      +        "user_prompt": "provide information on how relevant the amusement park business is in France now",
      +        "web_search_country_iso_code": "FR"
      +      }
      +    ],
      +    "properties": {
      +      "max_output_tokens": {
      +        "description": "<em>maximum number of tokens in the AI response</em><br>optional field<br>minimum value: <code>1</code><br>maximum value: <code>4096</code>;<br>default value: <code>2048</code>;<br><strong>Note:</strong> if the reasoning model is specified in the request, the output token count may exceed the specified <code>max_output_tokens</code> limit",
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      },
      +      "message_chain": {
      +        "description": "conversation history\noptional field\narray of message objects representing previous conversation turns;\neach object must contain:\nrole string with either user or ai role;\nmessage string with message content (max 500 characters);\nyou can specify maximum of 10 message objects in the array;\nNote: for Perplexity models, messages must strictly alternate between user and AI roles (user → ai);\nexample:\n\"message_chain\": [{\"role\":\"user\",\"message\":\"Hello, what’s up?\"},{\"role\":\"ai\",\"message\":\"Hello! I’m doing well, thank you. How can I assist you today?\"}]",
      +        "items": {
      +          "anyOf": [
      +            {
      +              "properties": {
      +                "message": {
      +                  "description": "message text",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "role": {
      +                  "description": "role of the user from whom the message originates",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            }
      +          ],
      +          "type": [
      +            "object",
      +            "null"
      +          ]
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "model_name": {
      +        "description": "<em>name of the AI model</em><br><strong>required field</strong><br><code>model_name</code >consists of the actual model name and version name;<br>if the basic model name is specified, its latest version will be set by default;<br>you can receive the list of available LLM models by making a separate request to the following endpoint: <code>https://api.dataforseo.com/v3/ai_optimization/perplexity/llm_responses/models</code>",
      +        "type": "string"
      +      },
      +      "system_message": {
      +        "description": "<em>instructions for the AI behavior</em><br>optional field<br>defines the AI's role, tone, or specific behavior <br>you can specify <strong>up to 500 characters</strong> in the <code>system_message</code> field",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "tag": {
      +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "temperature": {
      +        "description": "<em>randomness of the AI response</em><br>optional field<br>higher values make output more diverse <br>lower values make output more focused<br>minimum value: <code>0</code><br>maximum value: <code>1.9</code><br>default value: <code>0.77</code>",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "top_p": {
      +        "description": "<em>diversity of the AI response</em><br>optional field <br>controls diversity of the response by limiting token selection<br>minimum value: <code>0</code><br>maximum value: <code>1</code> <br>default value: <code>0.9</code>",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "user_prompt": {
      +        "description": "<em>prompt for the AI model</em><br><strong>required field</strong><br>the question or task you want to send to the AI model;<br>you can specify <strong>up to 500 characters</strong> in the <code>user_prompt</code> field",
      +        "type": "string"
      +      },
      +      "web_search_country_iso_code": {
      +        "description": "<em>country code for web search localization</em><br>optional field<br>specify the country  ISO code to get localized web search results<br><strong>Note:</strong> available only for Perplexity Sonar models<br>example: <code>US</code>",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / body / items / properties
      Removed value: -{
      -  "max_output_tokens": {
      -    "description": "maximum number of tokens in the AI response optional field minimum value: 1 maximum value: 4096; default value: 2048; Note: if the reasoning model is specified in the request, the output token count may exceed the specified max_output_tokens limit",
      -    "type": "integer"
      -  },
      -  "message_chain": {
      -    "description": "conversation history optional field array of message objects representing previous conversation turns; each object must contain: role string with either user or ai role; message string with message content (max 500 characters); you can specify maximum of 10 message objects in the array; Note: for Perplexity models, messages must strictly alternate between user and AI roles (user → ai); example: \"message_chain\": [{\"role\":\"user\",\"message\":\"Hello, what’s up?\"},{\"role\":\"ai\",\"message\":\"Hello! I’m doing well, thank you. How can I assist you today?\"}]",
      -    "items": {
      -      "properties": {
      -        "message": {
      -          "description": "message text",
      -          "type": "string"
      -        },
      -        "role": {
      -          "description": "role of the user from whom the message originates",
      -          "enum": [
      -            "user",
      -            "ai"
      -          ],
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "role",
      -        "message"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  "model_name": {
      -    "description": "name of the AI model required field model_nameconsists of the actual model name and version name; if the basic model name is specified, its latest version will be set by default; you can receive the list of available LLM models by making a separate request to the following endpoint: https://api.dataforseo.com/v3/ai_optimization/perplexity/llm_responses/models",
      -    "type": "string"
      -  },
      -  "system_message": {
      -    "description": "instructions for the AI behavior optional field defines the AI's role, tone, or specific behavior you can specify up to 500 characters in the system_message field",
      -    "type": "string"
      -  },
      -  "tag": {
      -    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
      -    "type": "string"
      -  },
      -  "temperature": {
      -    "description": "randomness of the AI response optional field higher values make output more diverse lower values make output more focused minimum value: 0 maximum value: 1.9 default value: 0.77",
      -    "type": "number"
      -  },
      -  "top_p": {
      -    "description": "diversity of the AI response optional field controls diversity of the response by limiting token selection minimum value: 0 maximum value: 1 default value: 0.9",
      -    "type": "number"
      -  },
      -  "user_prompt": {
      -    "description": "prompt for the AI model required field the question or task you want to send to the AI model; you can specify up to 500 characters in the user_prompt field",
      -    "type": "string"
      -  },
      -  "web_search_country_iso_code": {
      -    "description": "country code for web search localization optional field specify the country ISO code to get localized web search results Note: available only for Perplexity Sonar models example: US",
      -    "type": "string"
      -  }
      -}
    • removedInput schema / properties / body / items / required
      Removed value: -[
      -  "user_prompt",
      -  "model_name"
      -]
    • changedInput schema / properties / body / items / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedInput schema / required
      Previous value: -[
      -  "body"
      -]New value: +[]
    • addedOutput schema / x-fastmcp-wrap-result
      Added value: +true
  4. Changed7 schema fields changed
    • removedInput schema / properties / body / example
      Removed value: -[
      -  {
      -    "max_output_tokens": 200,
      -    "message_chain": [
      -      {
      -        "message": "Hello, what’s up?",
      -        "role": "user"
      -      },
      -      {
      -        "message": "Hello! I’m doing well, thank you. How can I assist you today? Are there any specific topics or projects you’d like to discuss in our meeting?",
      -        "role": "ai"
      -      }
      -    ],
      -    "model_name": "sonar",
      -    "system_message": "communicate as if we are in a business meeting",
      -    "temperature": 0.3,
      -    "top_p": 0.5,
      -    "user_prompt": "provide information on how relevant the amusement park business is in France now",
      -    "web_search_country_iso_code": "FR"
      -  }
      -]
    • removedInput schema / properties / body / items / anyOf
      Removed value: -[
      -  {
      -    "example": [
      -      {
      -        "max_output_tokens": 200,
      -        "message_chain": [
      -          {
      -            "message": "Hello, what’s up?",
      -            "role": "user"
      -          },
      -          {
      -            "message": "Hello! I’m doing well, thank you. How can I assist you today? Are there any specific topics or projects you’d like to discuss in our meeting?",
      -            "role": "ai"
      -          }
      -        ],
      -        "model_name": "sonar",
      -        "system_message": "communicate as if we are in a business meeting",
      -        "temperature": 0.3,
      -        "top_p": 0.5,
      -        "user_prompt": "provide information on how relevant the amusement park business is in France now",
      -        "web_search_country_iso_code": "FR"
      -      }
      -    ],
      -    "properties": {
      -      "max_output_tokens": {
      -        "description": "<em>maximum number of tokens in the AI response</em><br>optional field<br>minimum value: <code>1</code><br>maximum value: <code>4096</code>;<br>default value: <code>2048</code>;<br><strong>Note:</strong> if the reasoning model is specified in the request, the output token count may exceed the specified <code>max_output_tokens</code> limit",
      -        "type": [
      -          "integer",
      -          "null"
      -        ]
      -      },
      -      "message_chain": {
      -        "description": "conversation history\noptional field\narray of message objects representing previous conversation turns;\neach object must contain:\nrole string with either user or ai role;\nmessage string with message content (max 500 characters);\nyou can specify maximum of 10 message objects in the array;\nNote: for Perplexity models, messages must strictly alternate between user and AI roles (user → ai);\nexample:\n\"message_chain\": [{\"role\":\"user\",\"message\":\"Hello, what’s up?\"},{\"role\":\"ai\",\"message\":\"Hello! I’m doing well, thank you. How can I assist you today?\"}]",
      -        "items": {
      -          "anyOf": [
      -            {
      -              "properties": {
      -                "message": {
      -                  "description": "message text",
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "role": {
      -                  "description": "role of the user from whom the message originates",
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                }
      -              },
      -              "type": "object"
      -            }
      -          ],
      -          "type": [
      -            "object",
      -            "null"
      -          ]
      -        },
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "model_name": {
      -        "description": "<em>name of the AI model</em><br><strong>required field</strong><br><code>model_name</code >consists of the actual model name and version name;<br>if the basic model name is specified, its latest version will be set by default;<br>you can receive the list of available LLM models by making a separate request to the following endpoint: <code>https://api.dataforseo.com/v3/ai_optimization/perplexity/llm_responses/models</code>",
      -        "type": "string"
      -      },
      -      "system_message": {
      -        "description": "<em>instructions for the AI behavior</em><br>optional field<br>defines the AI's role, tone, or specific behavior <br>you can specify <strong>up to 500 characters</strong> in the <code>system_message</code> field",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "tag": {
      -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "temperature": {
      -        "description": "<em>randomness of the AI response</em><br>optional field<br>higher values make output more diverse <br>lower values make output more focused<br>minimum value: <code>0</code><br>maximum value: <code>1.9</code><br>default value: <code>0.77</code>",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "top_p": {
      -        "description": "<em>diversity of the AI response</em><br>optional field <br>controls diversity of the response by limiting token selection<br>minimum value: <code>0</code><br>maximum value: <code>1</code> <br>default value: <code>0.9</code>",
      -        "type": [
      -          "number",
      -          "null"
      -        ]
      -      },
      -      "user_prompt": {
      -        "description": "<em>prompt for the AI model</em><br><strong>required field</strong><br>the question or task you want to send to the AI model;<br>you can specify <strong>up to 500 characters</strong> in the <code>user_prompt</code> field",
      -        "type": "string"
      -      },
      -      "web_search_country_iso_code": {
      -        "description": "<em>country code for web search localization</em><br>optional field<br>specify the country  ISO code to get localized web search results<br><strong>Note:</strong> available only for Perplexity Sonar models<br>example: <code>US</code>",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  }
      -]
    • addedInput schema / properties / body / items / properties
      Added value: +{
      +  "max_output_tokens": {
      +    "description": "maximum number of tokens in the AI response optional field minimum value: 1 maximum value: 4096; default value: 2048; Note: if the reasoning model is specified in the request, the output token count may exceed the specified max_output_tokens limit",
      +    "type": "integer"
      +  },
      +  "message_chain": {
      +    "description": "conversation history optional field array of message objects representing previous conversation turns; each object must contain: role string with either user or ai role; message string with message content (max 500 characters); you can specify maximum of 10 message objects in the array; Note: for Perplexity models, messages must strictly alternate between user and AI roles (user → ai); example: \"message_chain\": [{\"role\":\"user\",\"message\":\"Hello, what’s up?\"},{\"role\":\"ai\",\"message\":\"Hello! I’m doing well, thank you. How can I assist you today?\"}]",
      +    "items": {
      +      "properties": {
      +        "message": {
      +          "description": "message text",
      +          "type": "string"
      +        },
      +        "role": {
      +          "description": "role of the user from whom the message originates",
      +          "enum": [
      +            "user",
      +            "ai"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "role",
      +        "message"
      +      ],
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "model_name": {
      +    "description": "name of the AI model required field model_nameconsists of the actual model name and version name; if the basic model name is specified, its latest version will be set by default; you can receive the list of available LLM models by making a separate request to the following endpoint: https://api.dataforseo.com/v3/ai_optimization/perplexity/llm_responses/models",
      +    "type": "string"
      +  },
      +  "system_message": {
      +    "description": "instructions for the AI behavior optional field defines the AI's role, tone, or specific behavior you can specify up to 500 characters in the system_message field",
      +    "type": "string"
      +  },
      +  "tag": {
      +    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
      +    "type": "string"
      +  },
      +  "temperature": {
      +    "description": "randomness of the AI response optional field higher values make output more diverse lower values make output more focused minimum value: 0 maximum value: 1.9 default value: 0.77",
      +    "type": "number"
      +  },
      +  "top_p": {
      +    "description": "diversity of the AI response optional field controls diversity of the response by limiting token selection minimum value: 0 maximum value: 1 default value: 0.9",
      +    "type": "number"
      +  },
      +  "user_prompt": {
      +    "description": "prompt for the AI model required field the question or task you want to send to the AI model; you can specify up to 500 characters in the user_prompt field",
      +    "type": "string"
      +  },
      +  "web_search_country_iso_code": {
      +    "description": "country code for web search localization optional field specify the country ISO code to get localized web search results Note: available only for Perplexity Sonar models example: US",
      +    "type": "string"
      +  }
      +}
    • addedInput schema / properties / body / items / required
      Added value: +[
      +  "user_prompt",
      +  "model_name"
      +]
    • changedInput schema / properties / body / items / type
      Previous value: -[
      -  "object",
      -  "null"
      -]New value: +"object"
    • changedInput schema / required
      Previous value: -[]New value: +[
      +  "body"
      +]
    • removedOutput schema / x-fastmcp-wrap-result
      Removed value: -true
  5. Changed7 schema fields changed
    • addedInput schema / properties / body / example
      Added value: +[
      +  {
      +    "max_output_tokens": 200,
      +    "message_chain": [
      +      {
      +        "message": "Hello, what’s up?",
      +        "role": "user"
      +      },
      +      {
      +        "message": "Hello! I’m doing well, thank you. How can I assist you today? Are there any specific topics or projects you’d like to discuss in our meeting?",
      +        "role": "ai"
      +      }
      +    ],
      +    "model_name": "sonar",
      +    "system_message": "communicate as if we are in a business meeting",
      +    "temperature": 0.3,
      +    "top_p": 0.5,
      +    "user_prompt": "provide information on how relevant the amusement park business is in France now",
      +    "web_search_country_iso_code": "FR"
      +  }
      +]
    • addedInput schema / properties / body / items / anyOf
      Added value: +[
      +  {
      +    "example": [
      +      {
      +        "max_output_tokens": 200,
      +        "message_chain": [
      +          {
      +            "message": "Hello, what’s up?",
      +            "role": "user"
      +          },
      +          {
      +            "message": "Hello! I’m doing well, thank you. How can I assist you today? Are there any specific topics or projects you’d like to discuss in our meeting?",
      +            "role": "ai"
      +          }
      +        ],
      +        "model_name": "sonar",
      +        "system_message": "communicate as if we are in a business meeting",
      +        "temperature": 0.3,
      +        "top_p": 0.5,
      +        "user_prompt": "provide information on how relevant the amusement park business is in France now",
      +        "web_search_country_iso_code": "FR"
      +      }
      +    ],
      +    "properties": {
      +      "max_output_tokens": {
      +        "description": "<em>maximum number of tokens in the AI response</em><br>optional field<br>minimum value: <code>1</code><br>maximum value: <code>4096</code>;<br>default value: <code>2048</code>;<br><strong>Note:</strong> if the reasoning model is specified in the request, the output token count may exceed the specified <code>max_output_tokens</code> limit",
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      },
      +      "message_chain": {
      +        "description": "conversation history\noptional field\narray of message objects representing previous conversation turns;\neach object must contain:\nrole string with either user or ai role;\nmessage string with message content (max 500 characters);\nyou can specify maximum of 10 message objects in the array;\nNote: for Perplexity models, messages must strictly alternate between user and AI roles (user → ai);\nexample:\n\"message_chain\": [{\"role\":\"user\",\"message\":\"Hello, what’s up?\"},{\"role\":\"ai\",\"message\":\"Hello! I’m doing well, thank you. How can I assist you today?\"}]",
      +        "items": {
      +          "anyOf": [
      +            {
      +              "properties": {
      +                "message": {
      +                  "description": "message text",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "role": {
      +                  "description": "role of the user from whom the message originates",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            }
      +          ],
      +          "type": [
      +            "object",
      +            "null"
      +          ]
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "model_name": {
      +        "description": "<em>name of the AI model</em><br><strong>required field</strong><br><code>model_name</code >consists of the actual model name and version name;<br>if the basic model name is specified, its latest version will be set by default;<br>you can receive the list of available LLM models by making a separate request to the following endpoint: <code>https://api.dataforseo.com/v3/ai_optimization/perplexity/llm_responses/models</code>",
      +        "type": "string"
      +      },
      +      "system_message": {
      +        "description": "<em>instructions for the AI behavior</em><br>optional field<br>defines the AI's role, tone, or specific behavior <br>you can specify <strong>up to 500 characters</strong> in the <code>system_message</code> field",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "tag": {
      +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "temperature": {
      +        "description": "<em>randomness of the AI response</em><br>optional field<br>higher values make output more diverse <br>lower values make output more focused<br>minimum value: <code>0</code><br>maximum value: <code>1.9</code><br>default value: <code>0.77</code>",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "top_p": {
      +        "description": "<em>diversity of the AI response</em><br>optional field <br>controls diversity of the response by limiting token selection<br>minimum value: <code>0</code><br>maximum value: <code>1</code> <br>default value: <code>0.9</code>",
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "user_prompt": {
      +        "description": "<em>prompt for the AI model</em><br><strong>required field</strong><br>the question or task you want to send to the AI model;<br>you can specify <strong>up to 500 characters</strong> in the <code>user_prompt</code> field",
      +        "type": "string"
      +      },
      +      "web_search_country_iso_code": {
      +        "description": "<em>country code for web search localization</em><br>optional field<br>specify the country  ISO code to get localized web search results<br><strong>Note:</strong> available only for Perplexity Sonar models<br>example: <code>US</code>",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / body / items / properties
      Removed value: -{
      -  "max_output_tokens": {
      -    "description": "maximum number of tokens in the AI response optional field minimum value: 1 maximum value: 4096; default value: 2048; Note: if the reasoning model is specified in the request, the output token count may exceed the specified max_output_tokens limit",
      -    "type": "integer"
      -  },
      -  "message_chain": {
      -    "description": "conversation history optional field array of message objects representing previous conversation turns; each object must contain: role string with either user or ai role; message string with message content (max 500 characters); you can specify maximum of 10 message objects in the array; Note: for Perplexity models, messages must strictly alternate between user and AI roles (user → ai); example: \"message_chain\": [{\"role\":\"user\",\"message\":\"Hello, what’s up?\"},{\"role\":\"ai\",\"message\":\"Hello! I’m doing well, thank you. How can I assist you today?\"}]",
      -    "items": {
      -      "properties": {
      -        "message": {
      -          "description": "message text",
      -          "type": "string"
      -        },
      -        "role": {
      -          "description": "role of the user from whom the message originates",
      -          "enum": [
      -            "user",
      -            "ai"
      -          ],
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "role",
      -        "message"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  "model_name": {
      -    "description": "name of the AI model required field model_nameconsists of the actual model name and version name; if the basic model name is specified, its latest version will be set by default; you can receive the list of available LLM models by making a separate request to the following endpoint: https://api.dataforseo.com/v3/ai_optimization/perplexity/llm_responses/models",
      -    "type": "string"
      -  },
      -  "system_message": {
      -    "description": "instructions for the AI behavior optional field defines the AI's role, tone, or specific behavior you can specify up to 500 characters in the system_message field",
      -    "type": "string"
      -  },
      -  "tag": {
      -    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
      -    "type": "string"
      -  },
      -  "temperature": {
      -    "description": "randomness of the AI response optional field higher values make output more diverse lower values make output more focused minimum value: 0 maximum value: 1.9 default value: 0.77",
      -    "type": "number"
      -  },
      -  "top_p": {
      -    "description": "diversity of the AI response optional field controls diversity of the response by limiting token selection minimum value: 0 maximum value: 1 default value: 0.9",
      -    "type": "number"
      -  },
      -  "user_prompt": {
      -    "description": "prompt for the AI model required field the question or task you want to send to the AI model; you can specify up to 500 characters in the user_prompt field",
      -    "type": "string"
      -  },
      -  "web_search_country_iso_code": {
      -    "description": "country code for web search localization optional field specify the country ISO code to get localized web search results Note: available only for Perplexity Sonar models example: US",
      -    "type": "string"
      -  }
      -}
    • removedInput schema / properties / body / items / required
      Removed value: -[
      -  "user_prompt",
      -  "model_name"
      -]
    • changedInput schema / properties / body / items / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedInput schema / required
      Previous value: -[
      -  "body"
      -]New value: +[]
    • addedOutput schema / x-fastmcp-wrap-result
      Added value: +true
  6. Changed2 schema fields changed
    • addedInput schema / properties / body / items / properties / message_chain / items / properties / message / description
      Added value: +"message text"
    • addedInput schema / properties / body / items / properties / message_chain / items / properties / role / description
      Added value: +"role of the user from whom the message originates"
  7. First observed

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is covered. The description adds genuine context beyond them by disclosing usage-based billing and an estimated per-request cost (~$0.0163), but it does nothing to explain the live/non-cached nature or clarify why a read-style LLM query is flagged destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the purpose front-loaded and no wasted prose. The injected pricing block is boilerplate but adds a concrete cost fact; the phrase 'based on the input parameters' is the only filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be described, and the nested input schema is thorough. However, for a live third-party inference endpoint with three very similar siblings, the description is minimal: it never routes the agent among the model-specific variants or notes that results are real-time.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Top-level schema coverage is 0% (the single 'body' parameter is undocumented), but the nested properties inside it carry very detailed inline descriptions (model_name, user_prompt, message_chain alternation rules, token limits, etc.). The description adds nothing about parameters, so the schema must do all the work, which it largely does.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb ('retrieve structured responses') and resource ('from a specific Perplexity AI model'), so the agent knows what the tool returns. It does not explicitly differentiate itself from the near-identical ChatGPT/Claude/Gemini siblings, though the model name in the tool title partly carries that.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says only 'based on the input parameters' and offers no when-to-use guidance, no when-not-to-use, and no pointer to the sibling endpoints for other models. An agent must infer that this is the Perplexity-specific option rather than being told.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources