curl --request POST \
--url https://sdk.nimbleway.com/v2/agents \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"agent_name": "<string>",
"description": "<string>",
"display_name": "<string>",
"effort": "high",
"goals": [
"Find recent company announcements",
"Summarize funding history"
],
"icon": "<string>",
"is_active": true,
"output_schema": {},
"skill": "<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>"
},
"suggested_questions": [
"<string>"
],
"template": "linkedin_company_profiles"
}
'import requests
url = "https://sdk.nimbleway.com/v2/agents"
payload = {
"agent_name": "<string>",
"description": "<string>",
"display_name": "<string>",
"effort": "high",
"goals": ["Find recent company announcements", "Summarize funding history"],
"icon": "<string>",
"is_active": True,
"output_schema": {},
"skill": "<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>"
},
"suggested_questions": ["<string>"],
"template": "linkedin_company_profiles"
}
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({
agent_name: '<string>',
description: '<string>',
display_name: '<string>',
effort: 'high',
goals: ['Find recent company announcements', 'Summarize funding history'],
icon: '<string>',
is_active: true,
output_schema: {},
skill: '<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>'
},
suggested_questions: ['<string>'],
template: 'linkedin_company_profiles'
})
};
fetch('https://sdk.nimbleway.com/v2/agents', 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",
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([
'agent_name' => '<string>',
'description' => '<string>',
'display_name' => '<string>',
'effort' => 'high',
'goals' => [
'Find recent company announcements',
'Summarize funding history'
],
'icon' => '<string>',
'is_active' => true,
'output_schema' => [
],
'skill' => '<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>'
],
'suggested_questions' => [
'<string>'
],
'template' => 'linkedin_company_profiles'
]),
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"
payload := strings.NewReader("{\n \"agent_name\": \"<string>\",\n \"description\": \"<string>\",\n \"display_name\": \"<string>\",\n \"effort\": \"high\",\n \"goals\": [\n \"Find recent company announcements\",\n \"Summarize funding history\"\n ],\n \"icon\": \"<string>\",\n \"is_active\": true,\n \"output_schema\": {},\n \"skill\": \"<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 \"suggested_questions\": [\n \"<string>\"\n ],\n \"template\": \"linkedin_company_profiles\"\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")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"agent_name\": \"<string>\",\n \"description\": \"<string>\",\n \"display_name\": \"<string>\",\n \"effort\": \"high\",\n \"goals\": [\n \"Find recent company announcements\",\n \"Summarize funding history\"\n ],\n \"icon\": \"<string>\",\n \"is_active\": true,\n \"output_schema\": {},\n \"skill\": \"<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 \"suggested_questions\": [\n \"<string>\"\n ],\n \"template\": \"linkedin_company_profiles\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sdk.nimbleway.com/v2/agents")
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 \"agent_name\": \"<string>\",\n \"description\": \"<string>\",\n \"display_name\": \"<string>\",\n \"effort\": \"high\",\n \"goals\": [\n \"Find recent company announcements\",\n \"Summarize funding history\"\n ],\n \"icon\": \"<string>\",\n \"is_active\": true,\n \"output_schema\": {},\n \"skill\": \"<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 \"suggested_questions\": [\n \"<string>\"\n ],\n \"template\": \"linkedin_company_profiles\"\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"display_name": "Company News Tracker",
"effort": "high",
"goals": [
{
"goal": "<string>",
"id": "<string>",
"order": 123
}
],
"icon": "<string>",
"id": "wsa_2af5b0e2-58b8-4b60-a1a4-9e57e4d33f00",
"is_active": true,
"output_schema": {},
"skill": "<string>",
"sources": {
"allow": [
{
"domains": [
"linkedin.com",
"crunchbase.com"
],
"id": "<string>",
"order": 123,
"title": "Professional networks"
}
],
"avoid": "<string>",
"block": [
{
"domains": [
"linkedin.com",
"crunchbase.com"
],
"id": "<string>",
"order": 123,
"title": "Professional networks"
}
],
"prioritize": "<string>"
},
"suggested_questions": [
{
"id": "<string>",
"order": 123,
"question": "<string>"
}
],
"updated_at": "2023-11-07T05:31:56Z",
"use_case": "research",
"agent_name": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Create Agent
Create a Web Search Agent. Either pass template to materialize a pre-built template (its fields, goals, sources, and suggested questions are copied), or define the agent from scratch with display_name, goals, sources, and an optional output_schema for structured results.
curl --request POST \
--url https://sdk.nimbleway.com/v2/agents \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"agent_name": "<string>",
"description": "<string>",
"display_name": "<string>",
"effort": "high",
"goals": [
"Find recent company announcements",
"Summarize funding history"
],
"icon": "<string>",
"is_active": true,
"output_schema": {},
"skill": "<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>"
},
"suggested_questions": [
"<string>"
],
"template": "linkedin_company_profiles"
}
'import requests
url = "https://sdk.nimbleway.com/v2/agents"
payload = {
"agent_name": "<string>",
"description": "<string>",
"display_name": "<string>",
"effort": "high",
"goals": ["Find recent company announcements", "Summarize funding history"],
"icon": "<string>",
"is_active": True,
"output_schema": {},
"skill": "<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>"
},
"suggested_questions": ["<string>"],
"template": "linkedin_company_profiles"
}
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({
agent_name: '<string>',
description: '<string>',
display_name: '<string>',
effort: 'high',
goals: ['Find recent company announcements', 'Summarize funding history'],
icon: '<string>',
is_active: true,
output_schema: {},
skill: '<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>'
},
suggested_questions: ['<string>'],
template: 'linkedin_company_profiles'
})
};
fetch('https://sdk.nimbleway.com/v2/agents', 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",
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([
'agent_name' => '<string>',
'description' => '<string>',
'display_name' => '<string>',
'effort' => 'high',
'goals' => [
'Find recent company announcements',
'Summarize funding history'
],
'icon' => '<string>',
'is_active' => true,
'output_schema' => [
],
'skill' => '<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>'
],
'suggested_questions' => [
'<string>'
],
'template' => 'linkedin_company_profiles'
]),
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"
payload := strings.NewReader("{\n \"agent_name\": \"<string>\",\n \"description\": \"<string>\",\n \"display_name\": \"<string>\",\n \"effort\": \"high\",\n \"goals\": [\n \"Find recent company announcements\",\n \"Summarize funding history\"\n ],\n \"icon\": \"<string>\",\n \"is_active\": true,\n \"output_schema\": {},\n \"skill\": \"<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 \"suggested_questions\": [\n \"<string>\"\n ],\n \"template\": \"linkedin_company_profiles\"\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")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"agent_name\": \"<string>\",\n \"description\": \"<string>\",\n \"display_name\": \"<string>\",\n \"effort\": \"high\",\n \"goals\": [\n \"Find recent company announcements\",\n \"Summarize funding history\"\n ],\n \"icon\": \"<string>\",\n \"is_active\": true,\n \"output_schema\": {},\n \"skill\": \"<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 \"suggested_questions\": [\n \"<string>\"\n ],\n \"template\": \"linkedin_company_profiles\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sdk.nimbleway.com/v2/agents")
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 \"agent_name\": \"<string>\",\n \"description\": \"<string>\",\n \"display_name\": \"<string>\",\n \"effort\": \"high\",\n \"goals\": [\n \"Find recent company announcements\",\n \"Summarize funding history\"\n ],\n \"icon\": \"<string>\",\n \"is_active\": true,\n \"output_schema\": {},\n \"skill\": \"<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 \"suggested_questions\": [\n \"<string>\"\n ],\n \"template\": \"linkedin_company_profiles\"\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"description": "<string>",
"display_name": "Company News Tracker",
"effort": "high",
"goals": [
{
"goal": "<string>",
"id": "<string>",
"order": 123
}
],
"icon": "<string>",
"id": "wsa_2af5b0e2-58b8-4b60-a1a4-9e57e4d33f00",
"is_active": true,
"output_schema": {},
"skill": "<string>",
"sources": {
"allow": [
{
"domains": [
"linkedin.com",
"crunchbase.com"
],
"id": "<string>",
"order": 123,
"title": "Professional networks"
}
],
"avoid": "<string>",
"block": [
{
"domains": [
"linkedin.com",
"crunchbase.com"
],
"id": "<string>",
"order": 123,
"title": "Professional networks"
}
],
"prioritize": "<string>"
},
"suggested_questions": [
{
"id": "<string>",
"order": 123,
"question": "<string>"
}
],
"updated_at": "2023-11-07T05:31:56Z",
"use_case": "research",
"agent_name": "<string>"
}{
"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.
Body
Stable agent name.
Agent description shown to users.
Human-friendly agent name shown to users.
Default effort level for this agent's runs.
low, medium, high, x-high, max Ordered goals for the agent to follow.
[
"Find recent company announcements",
"Summarize funding history"
]
Icon identifier used when presenting the agent.
Whether the agent can be used to start new runs.
JSON schema describing the structured output the agent should produce.
Skill or operating context for the agent.
Source guidance for the agent.
Show child attributes
Show child attributes
Suggested prompts users can run with this agent.
Template name to materialize this instance from. When set, the scalar fields and child rows are copied from the template.
"linkedin_company_profiles"
Primary use case supported by the agent.
research, enrichment, dataset_building Response
Successful Response
When the agent was created.
Agent description shown to users.
Human-friendly agent name shown to users.
"Company News Tracker"
Default effort level for this agent's runs.
low, medium, high, x-high, max "high"
Ordered goals for the agent to follow.
Show child attributes
Show child attributes
Icon identifier used when presenting the agent.
Unique web search agent identifier (wsa_).
"wsa_2af5b0e2-58b8-4b60-a1a4-9e57e4d33f00"
Whether the agent can be used to start new runs.
JSON schema describing the structured output the agent should produce.
Skill or operating context for the agent.
Source guidance for the agent.
Show child attributes
Show child attributes
Suggested prompts users can run with this agent.
Show child attributes
Show child attributes
When the agent was last updated.
Primary use case supported by the agent.
research, enrichment, dataset_building "research"
Stable agent name.
Was this page helpful?