curl --request POST \
--url https://app.apigene.ai/api/task \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"prompt": "<string>",
"agent_id": "<string>",
"chat_model": {
"provider": "<string>",
"model": "<string>"
},
"mentions": [
{}
],
"visibility": "private",
"state": "enabled",
"thread_policy": "new_each_run",
"thread_id": "<string>"
}
'import requests
url = "https://app.apigene.ai/api/task"
payload = {
"name": "<string>",
"prompt": "<string>",
"agent_id": "<string>",
"chat_model": {
"provider": "<string>",
"model": "<string>"
},
"mentions": [{}],
"visibility": "private",
"state": "enabled",
"thread_policy": "new_each_run",
"thread_id": "<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({
name: '<string>',
prompt: '<string>',
agent_id: '<string>',
chat_model: {provider: '<string>', model: '<string>'},
mentions: [{}],
visibility: 'private',
state: 'enabled',
thread_policy: 'new_each_run',
thread_id: '<string>'
})
};
fetch('https://app.apigene.ai/api/task', 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://app.apigene.ai/api/task",
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([
'name' => '<string>',
'prompt' => '<string>',
'agent_id' => '<string>',
'chat_model' => [
'provider' => '<string>',
'model' => '<string>'
],
'mentions' => [
[
]
],
'visibility' => 'private',
'state' => 'enabled',
'thread_policy' => 'new_each_run',
'thread_id' => '<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://app.apigene.ai/api/task"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"agent_id\": \"<string>\",\n \"chat_model\": {\n \"provider\": \"<string>\",\n \"model\": \"<string>\"\n },\n \"mentions\": [\n {}\n ],\n \"visibility\": \"private\",\n \"state\": \"enabled\",\n \"thread_policy\": \"new_each_run\",\n \"thread_id\": \"<string>\"\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://app.apigene.ai/api/task")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"agent_id\": \"<string>\",\n \"chat_model\": {\n \"provider\": \"<string>\",\n \"model\": \"<string>\"\n },\n \"mentions\": [\n {}\n ],\n \"visibility\": \"private\",\n \"state\": \"enabled\",\n \"thread_policy\": \"new_each_run\",\n \"thread_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.apigene.ai/api/task")
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 \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"agent_id\": \"<string>\",\n \"chat_model\": {\n \"provider\": \"<string>\",\n \"model\": \"<string>\"\n },\n \"mentions\": [\n {}\n ],\n \"visibility\": \"private\",\n \"state\": \"enabled\",\n \"thread_policy\": \"new_each_run\",\n \"thread_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"name": "<string>",
"prompt": "<string>",
"created_by": "<string>",
"id": "<string>",
"agent_id": "<string>",
"chat_model": {
"provider": "<string>",
"model": "<string>"
},
"mentions": [
{}
],
"visibility": "private",
"schedule": {
"frequency": "manual",
"hour": "09:00",
"day": "Monday",
"timezone": "UTC"
},
"state": "enabled",
"thread_policy": "new_each_run",
"thread_id": "<string>",
"next_run": "1970-01-01T00:00:00",
"last_run_at": "2023-11-07T05:31:56Z",
"last_run_status": "<string>",
"last_run_thread_id": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Task Create
Create a scheduled command for the current organization and user.
curl --request POST \
--url https://app.apigene.ai/api/task \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"prompt": "<string>",
"agent_id": "<string>",
"chat_model": {
"provider": "<string>",
"model": "<string>"
},
"mentions": [
{}
],
"visibility": "private",
"state": "enabled",
"thread_policy": "new_each_run",
"thread_id": "<string>"
}
'import requests
url = "https://app.apigene.ai/api/task"
payload = {
"name": "<string>",
"prompt": "<string>",
"agent_id": "<string>",
"chat_model": {
"provider": "<string>",
"model": "<string>"
},
"mentions": [{}],
"visibility": "private",
"state": "enabled",
"thread_policy": "new_each_run",
"thread_id": "<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({
name: '<string>',
prompt: '<string>',
agent_id: '<string>',
chat_model: {provider: '<string>', model: '<string>'},
mentions: [{}],
visibility: 'private',
state: 'enabled',
thread_policy: 'new_each_run',
thread_id: '<string>'
})
};
fetch('https://app.apigene.ai/api/task', 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://app.apigene.ai/api/task",
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([
'name' => '<string>',
'prompt' => '<string>',
'agent_id' => '<string>',
'chat_model' => [
'provider' => '<string>',
'model' => '<string>'
],
'mentions' => [
[
]
],
'visibility' => 'private',
'state' => 'enabled',
'thread_policy' => 'new_each_run',
'thread_id' => '<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://app.apigene.ai/api/task"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"agent_id\": \"<string>\",\n \"chat_model\": {\n \"provider\": \"<string>\",\n \"model\": \"<string>\"\n },\n \"mentions\": [\n {}\n ],\n \"visibility\": \"private\",\n \"state\": \"enabled\",\n \"thread_policy\": \"new_each_run\",\n \"thread_id\": \"<string>\"\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://app.apigene.ai/api/task")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"agent_id\": \"<string>\",\n \"chat_model\": {\n \"provider\": \"<string>\",\n \"model\": \"<string>\"\n },\n \"mentions\": [\n {}\n ],\n \"visibility\": \"private\",\n \"state\": \"enabled\",\n \"thread_policy\": \"new_each_run\",\n \"thread_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.apigene.ai/api/task")
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 \"name\": \"<string>\",\n \"prompt\": \"<string>\",\n \"agent_id\": \"<string>\",\n \"chat_model\": {\n \"provider\": \"<string>\",\n \"model\": \"<string>\"\n },\n \"mentions\": [\n {}\n ],\n \"visibility\": \"private\",\n \"state\": \"enabled\",\n \"thread_policy\": \"new_each_run\",\n \"thread_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"name": "<string>",
"prompt": "<string>",
"created_by": "<string>",
"id": "<string>",
"agent_id": "<string>",
"chat_model": {
"provider": "<string>",
"model": "<string>"
},
"mentions": [
{}
],
"visibility": "private",
"schedule": {
"frequency": "manual",
"hour": "09:00",
"day": "Monday",
"timezone": "UTC"
},
"state": "enabled",
"thread_policy": "new_each_run",
"thread_id": "<string>",
"next_run": "1970-01-01T00:00:00",
"last_run_at": "2023-11-07T05:31:56Z",
"last_run_status": "<string>",
"last_run_thread_id": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
JWT Authorization header using the Bearer scheme. Example: 'Authorization: Bearer {token}'
Body
Scheduled command create/update payload (reuses /api/task paths).
Command display name.
Prompt / command text to run via Copilot chat.
Optional Copilot agent id to @-mention for the run.
Optional chat model override {provider, model}.
Show child attributes
Show child attributes
Optional mention snapshot (agent/mcp) for the headless run.
Command visibility: 'private' or 'public'
private, public Schedule information for the command
Show child attributes
Show child attributes
Command state: 'enabled' or 'disabled'
disabled, enabled Whether each run creates a new chat thread or appends to thread_id
new_each_run, append Thread to append to when thread_policy is 'append'
Response
Successful Response
Command display name.
Prompt / command text.
User who created the command (email)
Unique identifier for the command
Optional Copilot agent id.
Optional model override.
Show child attributes
Show child attributes
private, public Show child attributes
Show child attributes
disabled, enabled new_each_run, append Next scheduled execution time (UTC)
