curl --request POST \
--url https://sdk.nimbleway.com/v2/agents/{agent_id}/runs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"input": "Find the 10 fastest growing AI startups in Europe and their latest funding rounds.",
"enable_events": false,
"input_data": [
{}
],
"output_schema": {},
"previous_interaction_id": "<string>",
"sources": {
"allow": [
{
"domains": [
"linkedin.com",
"crunchbase.com"
],
"title": "Professional networks",
"order": 0
}
],
"avoid": "<string>",
"block": [
{
"domains": [
"linkedin.com",
"crunchbase.com"
],
"title": "Professional networks",
"order": 0
}
],
"prioritize": "<string>"
}
}
'import requests
url = "https://sdk.nimbleway.com/v2/agents/{agent_id}/runs"
payload = {
"input": "Find the 10 fastest growing AI startups in Europe and their latest funding rounds.",
"enable_events": False,
"input_data": [{}],
"output_schema": {},
"previous_interaction_id": "<string>",
"sources": {
"allow": [
{
"domains": ["linkedin.com", "crunchbase.com"],
"title": "Professional networks",
"order": 0
}
],
"avoid": "<string>",
"block": [
{
"domains": ["linkedin.com", "crunchbase.com"],
"title": "Professional networks",
"order": 0
}
],
"prioritize": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
input: 'Find the 10 fastest growing AI startups in Europe and their latest funding rounds.',
enable_events: false,
input_data: [{}],
output_schema: {},
previous_interaction_id: '<string>',
sources: {
allow: [
{
domains: ['linkedin.com', 'crunchbase.com'],
title: 'Professional networks',
order: 0
}
],
avoid: '<string>',
block: [
{
domains: ['linkedin.com', 'crunchbase.com'],
title: 'Professional networks',
order: 0
}
],
prioritize: '<string>'
}
})
};
fetch('https://sdk.nimbleway.com/v2/agents/{agent_id}/runs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sdk.nimbleway.com/v2/agents/{agent_id}/runs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'input' => 'Find the 10 fastest growing AI startups in Europe and their latest funding rounds.',
'enable_events' => false,
'input_data' => [
[
]
],
'output_schema' => [
],
'previous_interaction_id' => '<string>',
'sources' => [
'allow' => [
[
'domains' => [
'linkedin.com',
'crunchbase.com'
],
'title' => 'Professional networks',
'order' => 0
]
],
'avoid' => '<string>',
'block' => [
[
'domains' => [
'linkedin.com',
'crunchbase.com'
],
'title' => 'Professional networks',
'order' => 0
]
],
'prioritize' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sdk.nimbleway.com/v2/agents/{agent_id}/runs"
payload := strings.NewReader("{\n \"input\": \"Find the 10 fastest growing AI startups in Europe and their latest funding rounds.\",\n \"enable_events\": false,\n \"input_data\": [\n {}\n ],\n \"output_schema\": {},\n \"previous_interaction_id\": \"<string>\",\n \"sources\": {\n \"allow\": [\n {\n \"domains\": [\n \"linkedin.com\",\n \"crunchbase.com\"\n ],\n \"title\": \"Professional networks\",\n \"order\": 0\n }\n ],\n \"avoid\": \"<string>\",\n \"block\": [\n {\n \"domains\": [\n \"linkedin.com\",\n \"crunchbase.com\"\n ],\n \"title\": \"Professional networks\",\n \"order\": 0\n }\n ],\n \"prioritize\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sdk.nimbleway.com/v2/agents/{agent_id}/runs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"input\": \"Find the 10 fastest growing AI startups in Europe and their latest funding rounds.\",\n \"enable_events\": false,\n \"input_data\": [\n {}\n ],\n \"output_schema\": {},\n \"previous_interaction_id\": \"<string>\",\n \"sources\": {\n \"allow\": [\n {\n \"domains\": [\n \"linkedin.com\",\n \"crunchbase.com\"\n ],\n \"title\": \"Professional networks\",\n \"order\": 0\n }\n ],\n \"avoid\": \"<string>\",\n \"block\": [\n {\n \"domains\": [\n \"linkedin.com\",\n \"crunchbase.com\"\n ],\n \"title\": \"Professional networks\",\n \"order\": 0\n }\n ],\n \"prioritize\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sdk.nimbleway.com/v2/agents/{agent_id}/runs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"input\": \"Find the 10 fastest growing AI startups in Europe and their latest funding rounds.\",\n \"enable_events\": false,\n \"input_data\": [\n {}\n ],\n \"output_schema\": {},\n \"previous_interaction_id\": \"<string>\",\n \"sources\": {\n \"allow\": [\n {\n \"domains\": [\n \"linkedin.com\",\n \"crunchbase.com\"\n ],\n \"title\": \"Professional networks\",\n \"order\": 0\n }\n ],\n \"avoid\": \"<string>\",\n \"block\": [\n {\n \"domains\": [\n \"linkedin.com\",\n \"crunchbase.com\"\n ],\n \"title\": \"Professional networks\",\n \"order\": 0\n }\n ],\n \"prioritize\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"effort": "high",
"id": "task_run_c0ffee00-0000-4000-8000-000000000000",
"interaction_id": "<string>",
"is_active": true,
"status": "queued",
"web_search_agent_id": "wsa_2af5b0e2-58b8-4b60-a1a4-9e57e4d33f00",
"completed_at": "2023-11-07T05:31:56Z",
"error": {
"message": "<string>",
"ref_id": "<string>"
},
"prompt": "<string>",
"started_at": "2023-11-07T05:31:56Z"
}{
"detail": "Web Search Agent wsa_2af5b0e2-58b8-4b60-a1a4-9e57e4d33f00 is not active"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Create Agent Run
Start an agent run. The run executes asynchronously: the response returns immediately with status queued, then poll GET .../runs/{run_id} until completed and fetch the output from GET .../runs/{run_id}/result — or set enable_events: true and follow GET .../runs/{run_id}/events for live progress.
To enrich existing records instead of researching from scratch, pass them in input_data; this requires an output_schema (on the request or the agent).
curl --request POST \
--url https://sdk.nimbleway.com/v2/agents/{agent_id}/runs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"input": "Find the 10 fastest growing AI startups in Europe and their latest funding rounds.",
"enable_events": false,
"input_data": [
{}
],
"output_schema": {},
"previous_interaction_id": "<string>",
"sources": {
"allow": [
{
"domains": [
"linkedin.com",
"crunchbase.com"
],
"title": "Professional networks",
"order": 0
}
],
"avoid": "<string>",
"block": [
{
"domains": [
"linkedin.com",
"crunchbase.com"
],
"title": "Professional networks",
"order": 0
}
],
"prioritize": "<string>"
}
}
'import requests
url = "https://sdk.nimbleway.com/v2/agents/{agent_id}/runs"
payload = {
"input": "Find the 10 fastest growing AI startups in Europe and their latest funding rounds.",
"enable_events": False,
"input_data": [{}],
"output_schema": {},
"previous_interaction_id": "<string>",
"sources": {
"allow": [
{
"domains": ["linkedin.com", "crunchbase.com"],
"title": "Professional networks",
"order": 0
}
],
"avoid": "<string>",
"block": [
{
"domains": ["linkedin.com", "crunchbase.com"],
"title": "Professional networks",
"order": 0
}
],
"prioritize": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
input: 'Find the 10 fastest growing AI startups in Europe and their latest funding rounds.',
enable_events: false,
input_data: [{}],
output_schema: {},
previous_interaction_id: '<string>',
sources: {
allow: [
{
domains: ['linkedin.com', 'crunchbase.com'],
title: 'Professional networks',
order: 0
}
],
avoid: '<string>',
block: [
{
domains: ['linkedin.com', 'crunchbase.com'],
title: 'Professional networks',
order: 0
}
],
prioritize: '<string>'
}
})
};
fetch('https://sdk.nimbleway.com/v2/agents/{agent_id}/runs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sdk.nimbleway.com/v2/agents/{agent_id}/runs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'input' => 'Find the 10 fastest growing AI startups in Europe and their latest funding rounds.',
'enable_events' => false,
'input_data' => [
[
]
],
'output_schema' => [
],
'previous_interaction_id' => '<string>',
'sources' => [
'allow' => [
[
'domains' => [
'linkedin.com',
'crunchbase.com'
],
'title' => 'Professional networks',
'order' => 0
]
],
'avoid' => '<string>',
'block' => [
[
'domains' => [
'linkedin.com',
'crunchbase.com'
],
'title' => 'Professional networks',
'order' => 0
]
],
'prioritize' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sdk.nimbleway.com/v2/agents/{agent_id}/runs"
payload := strings.NewReader("{\n \"input\": \"Find the 10 fastest growing AI startups in Europe and their latest funding rounds.\",\n \"enable_events\": false,\n \"input_data\": [\n {}\n ],\n \"output_schema\": {},\n \"previous_interaction_id\": \"<string>\",\n \"sources\": {\n \"allow\": [\n {\n \"domains\": [\n \"linkedin.com\",\n \"crunchbase.com\"\n ],\n \"title\": \"Professional networks\",\n \"order\": 0\n }\n ],\n \"avoid\": \"<string>\",\n \"block\": [\n {\n \"domains\": [\n \"linkedin.com\",\n \"crunchbase.com\"\n ],\n \"title\": \"Professional networks\",\n \"order\": 0\n }\n ],\n \"prioritize\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sdk.nimbleway.com/v2/agents/{agent_id}/runs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"input\": \"Find the 10 fastest growing AI startups in Europe and their latest funding rounds.\",\n \"enable_events\": false,\n \"input_data\": [\n {}\n ],\n \"output_schema\": {},\n \"previous_interaction_id\": \"<string>\",\n \"sources\": {\n \"allow\": [\n {\n \"domains\": [\n \"linkedin.com\",\n \"crunchbase.com\"\n ],\n \"title\": \"Professional networks\",\n \"order\": 0\n }\n ],\n \"avoid\": \"<string>\",\n \"block\": [\n {\n \"domains\": [\n \"linkedin.com\",\n \"crunchbase.com\"\n ],\n \"title\": \"Professional networks\",\n \"order\": 0\n }\n ],\n \"prioritize\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sdk.nimbleway.com/v2/agents/{agent_id}/runs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"input\": \"Find the 10 fastest growing AI startups in Europe and their latest funding rounds.\",\n \"enable_events\": false,\n \"input_data\": [\n {}\n ],\n \"output_schema\": {},\n \"previous_interaction_id\": \"<string>\",\n \"sources\": {\n \"allow\": [\n {\n \"domains\": [\n \"linkedin.com\",\n \"crunchbase.com\"\n ],\n \"title\": \"Professional networks\",\n \"order\": 0\n }\n ],\n \"avoid\": \"<string>\",\n \"block\": [\n {\n \"domains\": [\n \"linkedin.com\",\n \"crunchbase.com\"\n ],\n \"title\": \"Professional networks\",\n \"order\": 0\n }\n ],\n \"prioritize\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"effort": "high",
"id": "task_run_c0ffee00-0000-4000-8000-000000000000",
"interaction_id": "<string>",
"is_active": true,
"status": "queued",
"web_search_agent_id": "wsa_2af5b0e2-58b8-4b60-a1a4-9e57e4d33f00",
"completed_at": "2023-11-07T05:31:56Z",
"error": {
"message": "<string>",
"ref_id": "<string>"
},
"prompt": "<string>",
"started_at": "2023-11-07T05:31:56Z"
}{
"detail": "Web Search Agent wsa_2af5b0e2-58b8-4b60-a1a4-9e57e4d33f00 is not active"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Web Search Agent ID, format wsa_<uuid>.
Body
User prompt or task instructions for the run.
"Find the 10 fastest growing AI startups in Europe and their latest funding rounds."
Effort level overriding the agent default for this run.
low, medium, high, x-high, max Whether to stream run events when supported.
- Input Data · object[]
- Input Data · object
JSON schema overriding the agent's default structured output for this run.
Previous interaction identifier used to continue a conversation.
Source guidance overriding the agent default.
Show child attributes
Show child attributes
Response
Successful Response
When the run was created.
Effort level used for the run.
low, medium, high, x-high, max "high"
Run identifier, format "task_run_{uuid}".
"task_run_c0ffee00-0000-4000-8000-000000000000"
Interaction ID.
True while status is 'queued' or 'running'.
Current run status.
queued, running, completed, failed, cancelled "queued"
Web Search Agent instance this run belongs to.
"wsa_2af5b0e2-58b8-4b60-a1a4-9e57e4d33f00"
When the run completed.
Error details when the run failed.
Show child attributes
Show child attributes
Prompt submitted for the run.
When the run started executing.
Was this page helpful?