Create AI Agent
curl --request POST \
--url https://use.hoop.dev/api/ai-agents \
--header 'Content-Type: application/json' \
--data '
{
"name": "claude-ops",
"groups": [
"engineering"
]
}
'import requests
url = "https://use.hoop.dev/api/ai-agents"
payload = {
"name": "claude-ops",
"groups": ["engineering"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({name: 'claude-ops', groups: ['engineering']})
};
fetch('https://use.hoop.dev/api/ai-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://use.hoop.dev/api/ai-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([
'name' => 'claude-ops',
'groups' => [
'engineering'
]
]),
CURLOPT_HTTPHEADER => [
"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://use.hoop.dev/api/ai-agents"
payload := strings.NewReader("{\n \"name\": \"claude-ops\",\n \"groups\": [\n \"engineering\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
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://use.hoop.dev/api/ai-agents")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"claude-ops\",\n \"groups\": [\n \"engineering\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://use.hoop.dev/api/ai-agents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"claude-ops\",\n \"groups\": [\n \"engineering\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"created_at": "<string>",
"created_by": "<string>",
"deactivated_at": "<string>",
"deactivated_by": "<string>",
"groups": [
"engineering"
],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"key": "hpk_Ab3fX9kL...",
"last_used_at": "<string>",
"masked_key": "hpk_1nzb***************************************",
"name": "ai-agent",
"org_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "active"
}{
"message": "the error description"
}{
"message": "the error description"
}{
"message": "the error description"
}AI Agents
Create AI Agent
Generate a new AI Agent. The raw key is returned only once in the response and cannot be retrieved after creation.
POST
/
ai-agents
Create AI Agent
curl --request POST \
--url https://use.hoop.dev/api/ai-agents \
--header 'Content-Type: application/json' \
--data '
{
"name": "claude-ops",
"groups": [
"engineering"
]
}
'import requests
url = "https://use.hoop.dev/api/ai-agents"
payload = {
"name": "claude-ops",
"groups": ["engineering"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({name: 'claude-ops', groups: ['engineering']})
};
fetch('https://use.hoop.dev/api/ai-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://use.hoop.dev/api/ai-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([
'name' => 'claude-ops',
'groups' => [
'engineering'
]
]),
CURLOPT_HTTPHEADER => [
"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://use.hoop.dev/api/ai-agents"
payload := strings.NewReader("{\n \"name\": \"claude-ops\",\n \"groups\": [\n \"engineering\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
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://use.hoop.dev/api/ai-agents")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"claude-ops\",\n \"groups\": [\n \"engineering\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://use.hoop.dev/api/ai-agents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"claude-ops\",\n \"groups\": [\n \"engineering\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"created_at": "<string>",
"created_by": "<string>",
"deactivated_at": "<string>",
"deactivated_by": "<string>",
"groups": [
"engineering"
],
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"key": "hpk_Ab3fX9kL...",
"last_used_at": "<string>",
"masked_key": "hpk_1nzb***************************************",
"name": "ai-agent",
"org_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "active"
}{
"message": "the error description"
}{
"message": "the error description"
}{
"message": "the error description"
}Body
application/json
The request body resource
Response
Created
Creation timestamp
Subject of the admin who created this agent
Revocation timestamp
Subject of the admin who revoked this agent
Groups assigned to this AI Agent
Example:
["engineering"]
Unique identifier
The generated AI Agent key. This is the only time the full key is shown.
Example:
"hpk_Ab3fX9kL..."
Timestamp of last usage
Masked version of the AI Agent key for identification
Example:
"hpk_1nzb***************************************"
Human-readable name
Example:
"ai-agent"
Organization ID
Current status of the AI Agent
Available options:
active, revoked Was this page helpful?