# Custom Agent
POST https://api.you.com/v1/agents/runs
Content-Type: application/json
## Description
This endpoint lets you run an assistant you can configure within our web product at https://you.com/agents. The system supports both conversational inputs and advanced prompting techniques to define the agent’s behavior.
The call only returns when the agent has finished fully responding to the input question.
## Enterprise Settings
To maintain enterprise security, enable Zero Data Retention on your enterprise account. Manage this setting at [you.com/settings/privacy](https://you.com/settings/privacy). When enabled, we do not retain your data and do not use it for model training. Privacy settings can only be managed by You.com Enterprise or team admins.
Reference: https://docs.you.com/custom-solutions/agents/custom-agent/custom-agent-runs
## OpenAPI Specification
```yaml
openapi: 3.1.0
info:
title: custom
version: 1.0.0
paths:
/v1/agents/runs:
post:
operationId: custom-agent-runs
summary: Custom Agent
description: >-
## Description
This endpoint lets you run an assistant you can configure within our web
product at https://you.com/agents. The system supports both
conversational inputs and advanced prompting techniques to define the
agent’s behavior.
The call only returns when the agent has finished fully responding
to the input question.
## Enterprise Settings
To maintain enterprise security, enable Zero Data Retention on your
enterprise account. Manage this setting at
[you.com/settings/privacy](https://you.com/settings/privacy). When
enabled, we do not retain your data and do not use it for model
training. Privacy settings can only be managed by You.com
Enterprise or team admins.
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_:CustomAgentRunsBatchResponse'
'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
description: >-
Your Custom Agent's ID. To obtain one you must have created
a custom agent at https://you.com/agents.
input:
type: string
description: The question you'd like to ask the agent
stream:
type: boolean
enum:
- false
description: >-
Must be `true` to stream the agent response as it's
generated, and `false` to receive a response after the agent
has finished.
required:
- agent
- input
- stream
servers:
- url: https://api.you.com
components:
schemas:
type_:CustomAgentRunsBatchResponseInputItemRole:
type: string
enum:
- user
description: The access based role of the user
title: CustomAgentRunsBatchResponseInputItemRole
type_:CustomAgentRunsBatchResponseInputItem:
type: object
properties:
role:
$ref: '#/components/schemas/type_:CustomAgentRunsBatchResponseInputItemRole'
description: The access based role of the user
content:
type: string
description: The question populated in the request payload
required:
- role
- content
title: CustomAgentRunsBatchResponseInputItem
type_:AgentRunsResponseOutputType:
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.
`web_search.results` only appear when you use the `research` tool
title: AgentRunsResponseOutputType
type_:AgentRunsResponseWebSearchResultSourceType:
type: string
enum:
- web_search
description: The type of content the agent can return outside a text response
title: AgentRunsResponseWebSearchResultSourceType
type_:AgentRunsResponseWebSearchResult:
type: object
properties:
source_type:
$ref: >-
#/components/schemas/type_:AgentRunsResponseWebSearchResultSourceType
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_:AgentRunsResponseOutput:
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_:AgentRunsResponseOutputType'
description: >-
The type of output. This can either be:
* `message.answer` for text responses
* `web_search.results` for output that contains web links.
`web_search.results` only appear when you use the `research` tool
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: AgentRunsResponseOutput
type_:CustomAgentRunsBatchResponse:
type: object
properties:
agent:
type: string
description: The id of the agent populated in the request.
input:
type: array
items:
$ref: '#/components/schemas/type_:CustomAgentRunsBatchResponseInputItem'
description: The users access role and question you asked the agent
output:
type: array
items:
$ref: '#/components/schemas/type_:AgentRunsResponseOutput'
description: The agent's response items
required:
- agent
- input
- output
description: The id of the agent populated in the request.
title: CustomAgentRunsBatchResponse
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 an agent response
from youdotcom import You
from youdotcom.models import CustomAgentRunsRequest, AgentRunsBatchResponse
with You("api_key") as you:
response = you.agents.runs.create(
request=CustomAgentRunsRequest(
agent="63773261-b4de-4d8f-9dfd-cff206a5cb51",
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 { CustomAgentRunsRequest } from "@youdotcom-oss/sdk/models";
const you = new You({ apiKeyAuth: "api_key" });
const request: CustomAgentRunsRequest = {
agent: "63773261-b4de-4d8f-9dfd-cff206a5cb51",
stream: false,
input: "What is the capital of France?"
};
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: "63773261-b4de-4d8f-9dfd-cff206a5cb51",
stream: false,
input: "What is the capital of France?"
};
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\": \"63773261-b4de-4d8f-9dfd-cff206a5cb51\",\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\": \"63773261-b4de-4d8f-9dfd-cff206a5cb51\",\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\": \"63773261-b4de-4d8f-9dfd-cff206a5cb51\",\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": "63773261-b4de-4d8f-9dfd-cff206a5cb51",
"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()
```