curl --request GET \
--url https://agenticadvertising.org/api/registry/feed \
--header 'Authorization: Bearer <token>'import requests
url = "https://agenticadvertising.org/api/registry/feed"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://agenticadvertising.org/api/registry/feed', 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://agenticadvertising.org/api/registry/feed",
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://agenticadvertising.org/api/registry/feed"
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://agenticadvertising.org/api/registry/feed")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://agenticadvertising.org/api/registry/feed")
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{
"events": [
{
"event_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"event_type": "agent.discovered",
"entity_type": "<string>",
"entity_id": "<string>",
"payload": {
"agent_url": "<string>",
"name": "<string>",
"type": "<string>",
"channels": [
"<string>"
],
"property_types": [
"<string>"
],
"markets": [
"<string>"
],
"categories": [
"<string>"
],
"category_taxonomy": "<string>",
"tags": [
"<string>"
],
"delivery_types": [
"<string>"
],
"format_ids": [
"<string>"
],
"property_count": 123,
"publisher_count": 123,
"has_tmp": true,
"updated_at": "<string>",
"changed_fields": [
"<string>"
],
"inventory_profile": {},
"compliance_summary": {},
"previous_status": "<string>",
"current_status": "<string>",
"headline": "<string>",
"tracks": {},
"storyboards_passing": 1,
"storyboards_total": 1,
"storyboards": [
{
"storyboard_id": "<string>",
"status": "<string>",
"steps_passed": 1,
"steps_total": 1
}
],
"role": "<string>",
"verified_specialisms": [
"<string>"
],
"reason": "<string>",
"adcp_version": "<string>"
},
"actor": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}
],
"cursor": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"has_more": true,
"freshness": {
"generated_at": "2023-11-07T05:31:56Z",
"latest_event_created_at": "2023-11-07T05:31:56Z",
"lag_seconds": 1,
"retention_days": 123
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "cursor_expired",
"message": "<string>"
}Registry change feed
Poll a cursor-based feed of registry changes. Events are ordered by UUID v7 event_id for monotonic cursor progression. The feed retains events for 90 days. The freshness object reports when the response was generated, the newest matching event currently visible to the feed, and the resulting feed lag.
Type filtering supports glob patterns: property.* matches property.created, property.updated, etc.
curl --request GET \
--url https://agenticadvertising.org/api/registry/feed \
--header 'Authorization: Bearer <token>'import requests
url = "https://agenticadvertising.org/api/registry/feed"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://agenticadvertising.org/api/registry/feed', 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://agenticadvertising.org/api/registry/feed",
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://agenticadvertising.org/api/registry/feed"
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://agenticadvertising.org/api/registry/feed")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://agenticadvertising.org/api/registry/feed")
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{
"events": [
{
"event_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"event_type": "agent.discovered",
"entity_type": "<string>",
"entity_id": "<string>",
"payload": {
"agent_url": "<string>",
"name": "<string>",
"type": "<string>",
"channels": [
"<string>"
],
"property_types": [
"<string>"
],
"markets": [
"<string>"
],
"categories": [
"<string>"
],
"category_taxonomy": "<string>",
"tags": [
"<string>"
],
"delivery_types": [
"<string>"
],
"format_ids": [
"<string>"
],
"property_count": 123,
"publisher_count": 123,
"has_tmp": true,
"updated_at": "<string>",
"changed_fields": [
"<string>"
],
"inventory_profile": {},
"compliance_summary": {},
"previous_status": "<string>",
"current_status": "<string>",
"headline": "<string>",
"tracks": {},
"storyboards_passing": 1,
"storyboards_total": 1,
"storyboards": [
{
"storyboard_id": "<string>",
"status": "<string>",
"steps_passed": 1,
"steps_total": 1
}
],
"role": "<string>",
"verified_specialisms": [
"<string>"
],
"reason": "<string>",
"adcp_version": "<string>"
},
"actor": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}
],
"cursor": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"has_more": true,
"freshness": {
"generated_at": "2023-11-07T05:31:56Z",
"latest_event_created_at": "2023-11-07T05:31:56Z",
"lag_seconds": 1,
"retention_days": 123
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "cursor_expired",
"message": "<string>"
}Authorizations
Bearer token in the Authorization header. Two token types are accepted:
- Organization API key (
sk_...) issued via the dashboard. Org-scoped, long-lived, for server-to-server use. - User JWT obtained via the OAuth 2.1 authorization code flow with PKCE. User-scoped, short-lived. Discover the authorization server at
/.well-known/oauth-authorization-serverand the protected-resource metadata at/.well-known/oauth-protected-resource/api.
Query Parameters
Resume after this event ID
Comma-separated event type filters with glob support (e.g. property.*)
"property.*,agent.*"
Max events per page (default 100, max 10,000)
1 <= x <= 10000Response
Feed page
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
- Option 8
- Option 9
- Option 10
- Option 11
- Option 12
- Option 13
- Option 14
- Option 15
- Option 16
- Option 17
- Option 18
- Option 19
- Option 20
Show child attributes
Show child attributes
Pass as cursor in the next request to continue polling
Show child attributes
Show child attributes
Was this page helpful?