curl --request GET \
--url https://agenticadvertising.org/api/policies/resolveimport requests
url = "https://agenticadvertising.org/api/policies/resolve"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://agenticadvertising.org/api/policies/resolve', 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/policies/resolve",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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/policies/resolve"
req, _ := http.NewRequest("GET", url, nil)
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/policies/resolve")
.asString();require 'uri'
require 'net/http'
url = URI("https://agenticadvertising.org/api/policies/resolve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"policy_id": "gdpr_consent",
"version": "1.0.0",
"name": "GDPR Consent Requirements",
"description": "Requirements for valid consent under GDPR",
"category": "regulation",
"enforcement": "must",
"jurisdictions": [
"EU",
"EEA"
],
"region_aliases": {
"EU": [
"DE",
"FR",
"IT"
]
},
"policy_categories": [
"age_restricted",
"pharmaceutical_advertising"
],
"channels": [
"display",
"video"
],
"governance_domains": [
"campaign",
"creative"
],
"effective_date": "2025-05-25T00:00:00.000Z",
"sunset_date": "<string>",
"source_url": "https://eur-lex.europa.eu/eli/reg/2016/679/oj",
"source_name": "EUR-Lex",
"issuer": {
"domain": "<string>",
"name": "<string>"
},
"acceptance_profile": {
"profile_id": "<string>",
"version": "<string>",
"content_digest": "<string>",
"policy_refs": [
{
"policy_id": "<string>",
"version": "<string>",
"content_digest": "<string>"
}
],
"coverage": "partial",
"rules": [
{
"rule_id": "<string>",
"subject_category": "<string>",
"applies_to": [
"account"
],
"disposition": "allowed",
"subject_facets": [
"<string>"
],
"advertiser_roles": [
"<string>"
],
"jurisdictions": [
"<string>"
],
"jurisdiction_groups": [
"<string>"
],
"requirements": [
{
"kind": "category_declaration",
"declaration": "<string>",
"description": "<string>"
}
],
"policy_ids": [
"<string>"
],
"description": "<string>",
"effective_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"ext": {}
}
],
"scope": {
"subject_categories": [
"<string>"
],
"applies_to": [
"account"
],
"jurisdictions": [
"<string>"
],
"jurisdiction_groups": [
"<string>"
],
"all_jurisdictions": true
},
"region_aliases": {},
"description": "<string>",
"ext": {}
},
"content_digest": "<string>",
"canonical_content": {},
"policy": "Data subjects must provide freely given, specific, informed and unambiguous consent...",
"guidance": "<string>",
"exemplars": {
"pass": [
{
"scenario": "Ad for alcohol shown during children's programming",
"explanation": "Violates watershed timing rules for alcohol advertising"
}
],
"fail": [
{
"scenario": "Ad for alcohol shown during children's programming",
"explanation": "Violates watershed timing rules for alcohol advertising"
}
]
},
"ext": {},
"source_type": "registry",
"review_status": "pending",
"created_at": "2026-03-01T12:00:00.000Z",
"updated_at": "2026-03-01T12:00:00.000Z"
}{
"error": "<string>"
}{
"error": "<string>",
"policy_id": "<string>"
}Resolve policy
Resolve a single policy by ID. Optionally pin to an immutable published version. Registry publications include canonical_content and its RFC 8785 SHA-256 content_digest; a version that was never published returns not found.
curl --request GET \
--url https://agenticadvertising.org/api/policies/resolveimport requests
url = "https://agenticadvertising.org/api/policies/resolve"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://agenticadvertising.org/api/policies/resolve', 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/policies/resolve",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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/policies/resolve"
req, _ := http.NewRequest("GET", url, nil)
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/policies/resolve")
.asString();require 'uri'
require 'net/http'
url = URI("https://agenticadvertising.org/api/policies/resolve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"policy_id": "gdpr_consent",
"version": "1.0.0",
"name": "GDPR Consent Requirements",
"description": "Requirements for valid consent under GDPR",
"category": "regulation",
"enforcement": "must",
"jurisdictions": [
"EU",
"EEA"
],
"region_aliases": {
"EU": [
"DE",
"FR",
"IT"
]
},
"policy_categories": [
"age_restricted",
"pharmaceutical_advertising"
],
"channels": [
"display",
"video"
],
"governance_domains": [
"campaign",
"creative"
],
"effective_date": "2025-05-25T00:00:00.000Z",
"sunset_date": "<string>",
"source_url": "https://eur-lex.europa.eu/eli/reg/2016/679/oj",
"source_name": "EUR-Lex",
"issuer": {
"domain": "<string>",
"name": "<string>"
},
"acceptance_profile": {
"profile_id": "<string>",
"version": "<string>",
"content_digest": "<string>",
"policy_refs": [
{
"policy_id": "<string>",
"version": "<string>",
"content_digest": "<string>"
}
],
"coverage": "partial",
"rules": [
{
"rule_id": "<string>",
"subject_category": "<string>",
"applies_to": [
"account"
],
"disposition": "allowed",
"subject_facets": [
"<string>"
],
"advertiser_roles": [
"<string>"
],
"jurisdictions": [
"<string>"
],
"jurisdiction_groups": [
"<string>"
],
"requirements": [
{
"kind": "category_declaration",
"declaration": "<string>",
"description": "<string>"
}
],
"policy_ids": [
"<string>"
],
"description": "<string>",
"effective_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z",
"ext": {}
}
],
"scope": {
"subject_categories": [
"<string>"
],
"applies_to": [
"account"
],
"jurisdictions": [
"<string>"
],
"jurisdiction_groups": [
"<string>"
],
"all_jurisdictions": true
},
"region_aliases": {},
"description": "<string>",
"ext": {}
},
"content_digest": "<string>",
"canonical_content": {},
"policy": "Data subjects must provide freely given, specific, informed and unambiguous consent...",
"guidance": "<string>",
"exemplars": {
"pass": [
{
"scenario": "Ad for alcohol shown during children's programming",
"explanation": "Violates watershed timing rules for alcohol advertising"
}
],
"fail": [
{
"scenario": "Ad for alcohol shown during children's programming",
"explanation": "Violates watershed timing rules for alcohol advertising"
}
]
},
"ext": {},
"source_type": "registry",
"review_status": "pending",
"created_at": "2026-03-01T12:00:00.000Z",
"updated_at": "2026-03-01T12:00:00.000Z"
}{
"error": "<string>"
}{
"error": "<string>",
"policy_id": "<string>"
}Query Parameters
"gdpr_consent"
Return null if the current version does not match
Response
Policy resolved
"gdpr_consent"
"1.0.0"
"GDPR Consent Requirements"
"Requirements for valid consent under GDPR"
regulation, standard must, should, may ["EU", "EEA"]
Show child attributes
Show child attributes
{ "EU": ["DE", "FR", "IT"] }
[ "age_restricted", "pharmaceutical_advertising" ]
["display", "video"]
["campaign", "creative"]
"2025-05-25T00:00:00.000Z"
"https://eur-lex.europa.eu/eli/reg/2016/679/oj"
"EUR-Lex"
Machine-readable identity of the authoritative policy issuer
Show child attributes
Show child attributes
Version-pinned structured acceptance profile published with an authoritative registry policy
Show child attributes
Show child attributes
SHA-256 of the RFC 8785 (JCS) serialization of canonical_content. Present for immutable registry publications; null for legacy or community policies.
^sha256:[a-f0-9]{64}$Exact immutable registry policy document covered by content_digest. This excludes acceptance_profile, which has its own digest. Consumers MUST canonicalize this object with RFC 8785 before verifying content_digest.
Show child attributes
Show child attributes
"Data subjects must provide freely given, specific, informed and unambiguous consent..."
Show child attributes
Show child attributes
Show child attributes
Show child attributes
registry, community pending, approved "2026-03-01T12:00:00.000Z"
"2026-03-01T12:00:00.000Z"
Was this page helpful?