Create a Signals agent
POST
/signals/create-agent
curl -X POST https://api.xholic.ai/v1/signals/create-agent \ -H "Authorization: Bearer $XHOLIC_API_KEY" \ -H "Content-Type: application/json" \ -d '{"name":"Example","audienceDescription":"<audienceDescription>","sources":[{"type":"KEYWORD","query":"build in public"}],"dryRun":true}'xholic signals create-agent --name 'Example' --audience-description '<audienceDescription>' --sources '[{"type":"KEYWORD","query":"build in public"}]' --dry-run{ "name": "create_signal_agent", "arguments": { "name": "Example", "audienceDescription": "<audienceDescription>", "sources": [ { "type": "KEYWORD", "query": "build in public" } ], "dryRun": true }}const response = await fetch("https://api.xholic.ai/v1/signals/create-agent", { method: "POST", headers: { Authorization: `Bearer ${process.env.XHOLIC_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ "name": "Example", "audienceDescription": "<audienceDescription>", "sources": [ { "type": "KEYWORD", "query": "build in public" } ], "dryRun": true }),});const result = await response.json();console.log(result.summary);import axios from "axios";
const { data } = await axios.post( "https://api.xholic.ai/v1/signals/create-agent", { "name": "Example", "audienceDescription": "<audienceDescription>", "sources": [ { "type": "KEYWORD", "query": "build in public" } ], "dryRun": true }, { headers: { Authorization: `Bearer ${process.env.XHOLIC_API_KEY}` } },);console.log(data.summary);import osimport requests
response = requests.post( "https://api.xholic.ai/v1/signals/create-agent", headers={"Authorization": f"Bearer {os.environ['XHOLIC_API_KEY']}"}, json={ "name": "Example", "audienceDescription": "<audienceDescription>", "sources": [ { "type": "KEYWORD", "query": "build in public" } ], "dryRun": True },)print(response.json()["summary"])package main
import ( "fmt" "io" "net/http" "os" "strings")
func main() { body := strings.NewReader(`{"name":"Example","audienceDescription":"<audienceDescription>","sources":[{"type":"KEYWORD","query":"build in public"}],"dryRun":true}`) req, _ := http.NewRequest("POST", "https://api.xholic.ai/v1/signals/create-agent", body) req.Header.Set("Authorization", "Bearer "+os.Getenv("XHOLIC_API_KEY")) req.Header.Set("Content-Type", "application/json") res, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer res.Body.Close() out, _ := io.ReadAll(res.Body) fmt.Println(string(out))}<?php$ch = curl_init("https://api.xholic.ai/v1/signals/create-agent");curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HTTPHEADER => [ 'Authorization: Bearer ' . getenv('XHOLIC_API_KEY'), 'Content-Type: application/json', ], CURLOPT_POSTFIELDS => '{"name":"Example","audienceDescription":"<audienceDescription>","sources":[{"type":"KEYWORD","query":"build in public"}],"dryRun":true}',]);$result = json_decode(curl_exec($ch), true);echo $result['summary'];require "net/http"require "json"
uri = URI("https://api.xholic.ai/v1/signals/create-agent")req = Net::HTTP::Post.new(uri, "Content-Type" => "application/json")req["Authorization"] = "Bearer #{ENV.fetch("XHOLIC_API_KEY")}"req.body = '{"name":"Example","audienceDescription":"<audienceDescription>","sources":[{"type":"KEYWORD","query":"build in public"}],"dryRun":true}'res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }puts JSON.parse(res.body)["summary"]Create an always-on agent that finds leads on X from sources and an audience description. Call it only when the user asked for this in the conversation; never on your own initiative.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
name
required
string
productId
string
audienceDescription
required
string
exclusions
string
rubric
object
who
required
string
needs
Array<string>
disqualifiers
Array<string>
exampleMatch
string
exampleNonMatch
string
strictness
string
dmPolicy
string
destinationListId
string format: uuid
baselineMode
string
intervalHours
integer
status
string
sources
required
Array
One of:
object
id
string format: uuid
label
string
type
required
string
query
required
string
object
id
string format: uuid
label
string
type
required
string
username
required
string
includeReplies
boolean
includeQuotes
boolean
includeReposts
boolean
object
id
string format: uuid
label
string
type
required
string
username
required
string
object
id
string format: uuid
label
string
type
required
string
listId
required
string
listUrl
string format: uri
newListName
A name for a new contact list to save leads to.
string
account
X account to act on, as @handle. Leave it out to use the connection’s default account.
string
dryRun
Return exactly what would happen without doing it.
boolean
idempotencyKey
A unique key for this write. Repeating a call with the same key returns the first result instead of acting twice.
string
Example
{ "name": "Example", "audienceDescription": "<audienceDescription>", "sources": [ { "type": "KEYWORD", "query": "build in public" } ], "dryRun": true}Responses
Section titled “Responses”Success
Media typeapplication/json
object
ok
required
boolean
summary
required
One or two readable sentences about the result.
string
data
required
The result. Its shape depends on the action.
ids
object
key
additional properties
any
next
Array<string>
creditsCharged
number
dryRun
boolean
Example
{ "ok": true}default
Section titled “default”Error
Media typeapplication/json
object
ok
required
boolean
error
required
object
code
required
string
message
required
string
scope
required
string
retryAfterSeconds
integer
details
Example
{ "ok": false, "error": { "code": "UNAUTHENTICATED", "scope": "account" }}