Skip to main content
GET
/
api
/
v2
/
schedules
List schedules
curl --request GET \
  --url https://agp.eu.hcompany.ai/api/v2/schedules \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://agp.eu.hcompany.ai/api/v2/schedules"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://agp.eu.hcompany.ai/api/v2/schedules', 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://agp.eu.hcompany.ai/api/v2/schedules",
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://agp.eu.hcompany.ai/api/v2/schedules"

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://agp.eu.hcompany.ai/api/v2/schedules")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://agp.eu.hcompany.ai/api/v2/schedules")

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
Returns a paginated list of your organization’s schedules. Returns a paginated list of schedule objects.

Query parameters

page
integer
default:"1"
Page number (1-based).
size
integer
default:"10"
Items per page. Maximum: 1000.
sort
string
default:"-created_at"
Sort order. Options: created_at, -created_at.

Examples

curl "https://agp.eu.hcompany.ai/api/v2/schedules" \
  -H "Authorization: Bearer $HAI_API_KEY"
from hai_agents import Client

client = Client()

page = client.schedules.list_schedules()
for schedule in page.items:
    print(schedule.id, schedule.name, schedule.paused)
import { HaiAgentsClient } from "hai-agents";

const client = new HaiAgentsClient();

const page = await client.schedules.listSchedules();
for (const schedule of page.items) {
  console.log(schedule.id, schedule.name, schedule.paused);
}
Response
{
  "items": [
    {
      "id": "9f8e7d6c-5b4a-4c3d-8e2f-1a0b9c8d7e6f",
      "name": "morning-market-scan",
      "description": "Weekday scan of new Paris listings",
      "timing": {"type": "cron", "expression": "0 9 * * 1-5", "timezone": "Europe/Paris"},
      "session_request": {
        "agent": "h/web-surfer-flash",
        "messages": [
          {"type": "user_message", "message": "Scan new apartment listings in Paris 11e and summarize the top five"}
        ],
        "max_time_s": 3600
      },
      "paused": false,
      "pause_note": null,
      "next_run_times": [
        "2026-07-06T07:00:00Z",
        "2026-07-07T07:00:00Z",
        "2026-07-08T07:00:00Z",
        "2026-07-09T07:00:00Z",
        "2026-07-10T07:00:00Z"
      ],
      "last_run_at": "2026-07-03T07:00:00Z",
      "created_at": "2026-06-20T12:00:00Z",
      "updated_at": "2026-07-03T07:00:00Z"
    }
  ],
  "page": 1,
  "total": 1
}