List Policy Imports
curl --request GET \
--url https://api.zerodrift.ai/api/policies/import \
--header 'x-api-key: <api-key>'import requests
url = "https://api.zerodrift.ai/api/policies/import"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.zerodrift.ai/api/policies/import', 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.zerodrift.ai/api/policies/import",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.zerodrift.ai/api/policies/import"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.zerodrift.ai/api/policies/import")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zerodrift.ai/api/policies/import")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"imports": [
{
"import_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "activated",
"source_type": "file",
"origin": "uploaded",
"rule_count": 5,
"filename": "trading-policy.pdf",
"created_at": "2026-01-15T10:30:00Z",
"activated_at": "2026-01-15T11:02:00Z"
},
{
"import_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "pending_review",
"source_type": "text",
"origin": "notion",
"rule_count": 3,
"filename": "Client Communications Policy",
"created_at": "2026-01-20T14:15:00Z",
"activated_at": null
}
],
"count": 2
}
Policy
List Policy Imports
List all policy imports for your account
GET
/
api
/
policies
/
import
List Policy Imports
curl --request GET \
--url https://api.zerodrift.ai/api/policies/import \
--header 'x-api-key: <api-key>'import requests
url = "https://api.zerodrift.ai/api/policies/import"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.zerodrift.ai/api/policies/import', 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.zerodrift.ai/api/policies/import",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.zerodrift.ai/api/policies/import"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.zerodrift.ai/api/policies/import")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zerodrift.ai/api/policies/import")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"imports": [
{
"import_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "activated",
"source_type": "file",
"origin": "uploaded",
"rule_count": 5,
"filename": "trading-policy.pdf",
"created_at": "2026-01-15T10:30:00Z",
"activated_at": "2026-01-15T11:02:00Z"
},
{
"import_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "pending_review",
"source_type": "text",
"origin": "notion",
"rule_count": 3,
"filename": "Client Communications Policy",
"created_at": "2026-01-20T14:15:00Z",
"activated_at": null
}
],
"count": 2
}
Retrieve a list of all policy imports associated with your API key.
Response
array
Array of import records
Show import properties
Show import properties
string
Unique import identifier
string
Import status:
processing, pending_review, no_rules_found, failed, activated, or partially_activatedstring
How the content was submitted:
file or textstring
Where the document came from: a connector’s provider slug (
notion, linear, atlassian,
google_drive), uploaded, or builtinteger
Number of rules extracted
string
Original filename, when the import was submitted with one
string
ISO 8601 timestamp of the import
string
ISO 8601 timestamp of the most recent activation, or
null when nothing has been activatedinteger
Total number of imports
{
"imports": [
{
"import_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "activated",
"source_type": "file",
"origin": "uploaded",
"rule_count": 5,
"filename": "trading-policy.pdf",
"created_at": "2026-01-15T10:30:00Z",
"activated_at": "2026-01-15T11:02:00Z"
},
{
"import_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "pending_review",
"source_type": "text",
"origin": "notion",
"rule_count": 3,
"filename": "Client Communications Policy",
"created_at": "2026-01-20T14:15:00Z",
"activated_at": null
}
],
"count": 2
}

