Data API / DataForSEO / AI Optimization
Live Perplexity LLM Responses
Sends a user_prompt to a Perplexity model and returns its reply, synchronously. model_name must come from get_dataforseo_ai_perplexity_llm_responses_models - sonar, sonar-pro and sonar-reasoning-pro. web_search_country_iso_code scopes the search, which the other three vendors do not offer. Returns model_name, input_tokens, output_tokens, reasoning_tokens, web_search, money_spent, datetime, items and fan_out_queries. Read money_spent on the response to see what a prompt actually cost. Wrapped in DataForSEO's envelope: data in tasks[0].result, outcome in tasks[0].status_code - a rejected request still returns HTTP 200.
Параметры
Параметров пути, запроса и заголовков нет.
Тело запроса
user_promptstringОбязательный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
model_namestringОбязательный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
max_output_tokensintegerНеобязательный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
temperaturenumberНеобязательный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
top_pnumberНеобязательный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
web_search_country_iso_codestringНеобязательный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
system_messagestringНеобязательный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
message_chainobject[]Необязательный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?"}]
rolestringОбязательныйДопустимые значения: user · ai
messagestringОбязательныйtagstringНеобязательный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
Пример запроса
curl -X POST "https://openapi.felo.ai/v1/beta/dataforseo/ai_optimization/perplexity/llm_responses/live" \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"user_prompt": "<string>",
"model_name": "<string>",
"max_output_tokens": 0,
"temperature": 0,
"top_p": 0,
"web_search_country_iso_code": "<string>",
"system_message": "<string>",
"message_chain": [
{}
]
}'Ответ
Поля ответа
versionstringНеобязательныйthe current version of the API
status_codeintegerНеобязательныйgeneral status code you can find the full list of the response codes here Note: we strongly recommend designing a necessary system for handling related exceptional or error conditions
status_messagestringНеобязательныйgeneral informational message you can find the full list of general informational messages here
timestringНеобязательныйexecution time, seconds
costnumberНеобязательныйtotal tasks cost, USD
tasks_countintegerНеобязательныйthe number of tasks in the tasks array
tasks_errorintegerНеобязательныйthe number of tasks in the tasks array returned with an error
tasksstring[]Необязательныйarray of tasks
idstringНеобязательныйtask identifier unique task identifier in our system in the UUID format
status_codeintegerНеобязательныйstatus code of the task generated by DataForSEO; can be within the following range: 10000-60000 you can find the full list of the response codes here
status_messagestringНеобязательныйinformational message of the task you can find the full list of general informational messages here
timestringНеобязательныйexecution time, seconds
costnumberНеобязательныйcost of the task, USD includes the base task price plus the money_spent value
result_countintegerНеобязательныйnumber of elements in the result array
pathstring[]НеобязательныйURL path
dataobjectНеобязательныйcontains the same parameters that you specified in the POST request
resultstring[]Необязательныйarray of results
model_namestringНеобязательныйname of the AI model used
input_tokensintegerНеобязательныйnumber of tokens in the input total count of tokens processed
output_tokensintegerНеобязательныйnumber of tokens in the output total count of tokens generated in the AI response
web_searchbooleanНеобязательныйindicates if web search was used Note: web search is enabled by default in Perplexity Sonar models
money_spentnumberНеобязательныйcost of AI tokens, USD the price charged by the third-party AI model provider for according to its Pricing
datetimestringНеобязательныйdate and time when the result was received in the UTC format: “yyyy-mm-dd hh-mm-ss +00:00” example: 2019-11-15 12:57:46 +00:00
itemsstring[]Необязательныйarray of response items contains structured AI response data
typestringНеобязательныйtype of the element = 'message'
sectionsstring[]Необязательныйarray of content sections contains different parts of the AI response
typestringНеобязательныйtype of element='text'
textstringНеобязательныйAI-generated text content
annotationsstring[]Необязательныйarray of references used to generate the response equals null if the web_search parameter is not set to true Note: annotations may return empty even when web_search is true, as the AI will attempt to retrieve web information but may not find relevant results
titlestringНеобязательныйthe domain name or title of the quoted source
urlstringНеобязательныйURL of the quoted source
fan_out_queriesstring[]Необязательныйarray of fan-out queries contains related search queries derived from the main query to provide a more comprehensive response