# 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()
```