# Express Agent POST https://api.you.com/v1/agents/runs Content-Type: application/json This endpoint answers the user’s query with an LLM. Optionally, you can ground the answer using web results (max 1 web search). Use it for answering simple questions that require a low latency response. The data returns as a JSON payload with a `application/json` content type The call only returns when the agent has finished fully responding to the input question. Reference: https://docs.you.com/custom-solutions/agents/express-agent/express-agent-runs ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: express version: 1.0.0 paths: /v1/agents/runs: post: operationId: express-agent-runs summary: Express Agent description: >- This endpoint answers the user’s query with an LLM. Optionally, you can ground the answer using web results (max 1 web search). Use it for answering simple questions that require a low latency response. The data returns as a JSON payload with a `application/json` content type The call only returns when the agent has finished fully responding to the input question. tags: - '' parameters: - name: Authorization in: header description: Bearer authentication required: true schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/type_:ExpressAgentRunsBatchResponse' '400': description: The Authorization Bearer token was missing or invalid content: application/json: schema: $ref: '#/components/schemas/type_:AgentRuns400Response' '422': description: When the request data coming in is invalid content: application/json: schema: $ref: '#/components/schemas/type_:AgentRuns422Response' requestBody: content: application/json: schema: type: object properties: agent: type: string enum: - express description: >- Setting this value to "express" is mandatory to use the express agent. input: type: string description: The question you'd like to ask the agent stream: type: boolean enum: - false description: >- Must be set to `true` when you want to stream the express agent response as its being generated, and `false` when you want the response to return after the agent has finished. tools: type: array items: $ref: >- #/components/schemas/type_:ExpressAgentRunsRequestToolsItem description: >- You can optionally ground the express agent response using results fetched from the web (max 1 web search) required: - agent - input - stream servers: - url: https://api.you.com components: schemas: type_:ExpressAgentRunsRequestToolsItem: type: object properties: type: type: string enum: - web_search description: >- Setting this value to "web_search" is mandatory to use the web_search tool. required: - type title: ExpressAgentRunsRequestToolsItem type_:ExpressAgentRunsBatchResponseInputItemRole: type: string enum: - user description: The access based role of the user title: ExpressAgentRunsBatchResponseInputItemRole type_:ExpressAgentRunsBatchResponseInputItem: type: object properties: role: $ref: >- #/components/schemas/type_:ExpressAgentRunsBatchResponseInputItemRole description: The access based role of the user content: type: string description: The question populated in the request payload required: - role - content title: ExpressAgentRunsBatchResponseInputItem type_:ExpressAgentRunsResponseOutputType: type: string enum: - message.answer - web_search.results description: |- The type of output. This can either be: * `message.answer` for text responses * `web_search.results` for output that contains web links title: ExpressAgentRunsResponseOutputType type_:AgentRunsResponseWebSearchResult: type: object properties: source_type: type: string enum: - web_search description: The type of content the agent can return outside a text response citation_uri: type: string description: The web search result the agent returned along in its response provider: type: string description: This is currently unused title: type: string description: The title of the web site returned under url snippet: type: string description: A textual portion of the web site returned under url thumbnail_url: type: string description: The thumbnail image of the url url: type: string description: The web search result the agent returned along in its response required: - source_type - citation_uri - title - snippet - url description: >- The text response of the agent. This field only returns when the type is `web_search.results` title: AgentRunsResponseWebSearchResult type_:ExpressAgentRunsResponseOutput: type: object properties: text: type: string description: >- The text response of the agent. This field returns when `type == message.answer`. The response returns as markdown formatted text. For an overview of Markdown syntax, see the [Basic Syntax Markdown Guide](https://www.markdownguide.org/basic-syntax/) type: $ref: '#/components/schemas/type_:ExpressAgentRunsResponseOutputType' description: |- The type of output. This can either be: * `message.answer` for text responses * `web_search.results` for output that contains web links content: type: array items: $ref: '#/components/schemas/type_:AgentRunsResponseWebSearchResult' description: |- The text response of the agent. This field returns when `type == web_search.results` required: - type description: The response populated by the agent. title: ExpressAgentRunsResponseOutput type_:ExpressAgentRunsBatchResponse: type: object properties: agent: type: string description: The id of the agent populated in the request. input: type: array items: $ref: '#/components/schemas/type_:ExpressAgentRunsBatchResponseInputItem' description: The users access role and question you asked the agent output: type: array items: $ref: '#/components/schemas/type_:ExpressAgentRunsResponseOutput' description: The agent's response items required: - agent - input - output description: The id of the agent populated in the request. title: ExpressAgentRunsBatchResponse type_:AgentRuns400Response: type: object properties: detail: type: string description: The message returned by the error title: AgentRuns400Response type_:AgentRuns422ResponseDetailItemLocItem: oneOf: - type: string - type: integer title: AgentRuns422ResponseDetailItemLocItem type_:AgentRuns422ResponseDetailItem: type: object properties: type: type: string loc: type: array items: $ref: '#/components/schemas/type_:AgentRuns422ResponseDetailItemLocItem' msg: type: string input: type: string required: - type - loc - msg - input title: AgentRuns422ResponseDetailItem type_:AgentRuns422Response: type: object properties: detail: type: array items: $ref: '#/components/schemas/type_:AgentRuns422ResponseDetailItem' title: AgentRuns422Response securitySchemes: bearerAuth: type: http scheme: bearer ``` ## SDK Code Examples ```python # Use our official Python SDK to get the agent response from youdotcom import You from youdotcom.models import ExpressAgentRunsRequest, AgentRunsBatchResponse with You("api_key") as you: response = you.agents.runs.create( request=ExpressAgentRunsRequest( input="What is the capital of France?", stream=False ) ) if isinstance(response, AgentRunsBatchResponse) and response.output: for output in response.output: if output.text: print(output.text) ``` ```typescript // Use our official TypeScript SDK to get an agent response import { You } from "@youdotcom-oss/sdk"; import type { ExpressAgentRunsRequest } from "@youdotcom-oss/sdk/models"; const you = new You({ apiKeyAuth: "api_key" }); const request: ExpressAgentRunsRequest = { agent: "express", stream: false, input: "What is the capital of France?", tools: [{ type: "web_search" }] }; const result = await you.agentsRuns(request); console.log(result); ``` ```javascript // Use our official JavaScript SDK to get an agent response import { You } from "@youdotcom-oss/sdk"; const you = new You({ apiKeyAuth: "api_key" }); const request = { agent: "express", stream: false, input: "What is the capital of France?", tools: [{ type: "web_search" }] }; const result = await you.agentsRuns(request); console.log(result); ``` ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.you.com/v1/agents/runs" payload := strings.NewReader("{\n \"agent\": \"express\",\n \"input\": \"What is the capital of France?\",\n \"stream\": false\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "Bearer ") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.you.com/v1/agents/runs") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("{\n \"agent\": \"express\",\n \"input\": \"What is the capital of France?\",\n \"stream\": false\n}") .asString(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.you.com/v1/agents/runs"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "Bearer "); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"agent\": \"express\",\n \"input\": \"What is the capital of France?\",\n \"stream\": false\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "Authorization": "Bearer ", "Content-Type": "application/json" ] let parameters = [ "agent": "express", "input": "What is the capital of France?", "stream": false ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.you.com/v1/agents/runs")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```