curl --request GET \
--url https://api.runaether.dev/agent \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.runaether.dev/agent"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.runaether.dev/agent', 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://api.runaether.dev/agent",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.runaether.dev/agent"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.runaether.dev/agent")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.runaether.dev/agent")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"balance": {
"exhausted": true,
"microdollars": 123
},
"browser_tools": true,
"conversation_model": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"cron_model": "<string>",
"daily_cap": {
"daily_cap_cents": 123,
"day": "<string>",
"spent_microdollars": 123,
"timezone": "<string>"
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"last_used_at": "2023-11-07T05:31:56Z",
"state": "provisioning",
"timezone": "<string>",
"usage_this_month": {
"month": "<string>",
"spent_microdollars": 123
},
"default_project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}{
"code": "org_membership_required",
"error": "<string>"
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}Get your agent
Your personal agent: its state, settings and models, what it spent this month and its daily spend cap, in your timezone, and the balance that pays for it, your personal organization’s Aether inference balance. 404 agent_not_found until you have one.
curl --request GET \
--url https://api.runaether.dev/agent \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.runaether.dev/agent"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.runaether.dev/agent', 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://api.runaether.dev/agent",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.runaether.dev/agent"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.runaether.dev/agent")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.runaether.dev/agent")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"balance": {
"exhausted": true,
"microdollars": 123
},
"browser_tools": true,
"conversation_model": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"cron_model": "<string>",
"daily_cap": {
"daily_cap_cents": 123,
"day": "<string>",
"spent_microdollars": 123,
"timezone": "<string>"
},
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"last_used_at": "2023-11-07T05:31:56Z",
"state": "provisioning",
"timezone": "<string>",
"usage_this_month": {
"month": "<string>",
"spent_microdollars": 123
},
"default_project_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}{
"code": "org_membership_required",
"error": "<string>"
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}{
"error": "<string>",
"code": "<string>",
"errors": [
{
"location": "<string>",
"message": "<string>",
"value": "<unknown>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Response
OK
Show child attributes
Show child attributes
Whether your agent may drive a browser. Off by default; a change applies when Hermes next starts, which a running agent does at once.
The model your agent converses on.
The model your agent's scheduled jobs run on, unless a job names another.
Show child attributes
Show child attributes
When your agent was created or resumed, was sent a message, or last worked. Thirty days unused pauses it.
The host's lifecycle state. running: Hermes takes messages now; suspending and idle: asleep, woken by the next message; waking, resuming: coming up for a message; provisioning and booting: being created; updating: moving onto a new image; pausing and paused: backed up after thirty days unused, or paused by you, and resumed by the next message or by you; lost: its machine is gone and only deleting it helps; destroying: being deleted.
provisioning, booting, running, suspending, idle, waking, updating, pausing, paused, resuming, lost, destroying, destroyed Your IANA timezone, in which the agent's days and months begin.
Show child attributes
Show child attributes
The project a task your agent starts runs on when it names no repository. Without it such a task is refused.