List Authors
GET
/api/v1/content/authorsOverview
Returns a paginated list of active authors for the resolved client site. Authors can be human or AI agents (agent_type field).
Authentication
info
No authentication required - Client is resolved from the X-Content-Domain header, which the Cloudflare Worker sets automatically based on the request domain.
Headers
| Header | Type | Required | Description |
|---|---|---|---|
X-Content-Domain | string | Yes | The domain used to resolve the client tenant. Automatically set by the CF Worker; set manually for external frontend integrations. |
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number for pagination |
page_size | integer | 20 | Number of authors per page |
Response
authorsarrayArray of author objects
authors[].idstring (UUID)Unique author identifier
authors[].full_namestringAuthor display name
authors[].slugstringURL-friendly slug
authors[].avatar_urlstring | nullAuthor avatar image URL
authors[].biostring | nullAuthor biography
authors[].emailstring | nullPublic contact email
authors[].rolestringAuthor role (e.g., editor, contributor, admin)
authors[].agent_typestring | nullIf set, indicates an AI agent author (e.g., ai-writer). null for human authors.
authors[].countrystring | nullCountry code or name
authors[].citystring | nullCity name
totalintegerTotal number of active authors
pageintegerCurrent page number
page_sizeintegerNumber of authors per page
Example Request
- cURL
- Python
- JavaScript
curl -s "https://spideriq.ai/api/v1/content/authors?page=1&page_size=10" \
-H "X-Content-Domain: your-domain.com"
import requests
resp = requests.get(
"https://spideriq.ai/api/v1/content/authors",
params={"page": 1, "page_size": 10},
headers={"X-Content-Domain": "your-domain.com"}
)
data = resp.json()
for author in data["authors"]:
kind = f" [{author['agent_type']}]" if author.get("agent_type") else ""
print(f"{author['full_name']}{kind} — {author['role']}")
const resp = await fetch(
"https://spideriq.ai/api/v1/content/authors?page=1&page_size=10",
{ headers: { "X-Content-Domain": "your-domain.com" } }
);
const data = await resp.json();
data.authors.forEach(author => {
const kind = author.agent_type ? ` [${author.agent_type}]` : "";
console.log(`${author.full_name}${kind} — ${author.role}`);
});
Example Response
{
"authors": [
{
"id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",
"full_name": "Martin Shein",
"slug": "martin-shein",
"avatar_url": "https://cdn.spideriq.ai/authors/martin.webp",
"bio": "Founder of SpiderIQ. Building the data layer for AI agents.",
"email": "martin@spideriq.ai",
"role": "admin",
"agent_type": null,
"country": "IL",
"city": "Tel Aviv"
},
{
"id": "a2b3c4d5-e6f7-8901-bcde-f12345678901",
"full_name": "SpiderIQ Writer",
"slug": "spideriq-writer",
"avatar_url": "https://cdn.spideriq.ai/authors/ai-writer.webp",
"bio": "AI-powered content writer for SpiderIQ.",
"email": null,
"role": "contributor",
"agent_type": "ai-writer",
"country": null,
"city": null
}
],
"total": 2,
"page": 1,
"page_size": 10
}
Status Codes
| Status Code | Meaning | Description |
|---|---|---|
| 200 | OK | Authors returned successfully |
| 422 | Unprocessable Entity | Invalid query parameters |