Agent GEO API Documentation
Authentication
All endpoints in this section require an API key.
Use either header:
x-api-key: <api-key>Authorization: Bearer <api-key>
Where to find your API key
The x-api-key used to authenticate GEO/AEO requests is available on your Agent Settings page under API Keys. Locate the agent you want to use, reveal the key value, and copy it into your request header.
Example header:
x-api-key: <api-key-from-agent-settings>
Screenshot: Agent Settings → API Keys

Common Error Responses
The GEO API routes can return these common errors:
401 Unauthorized: Missing API key, invalid API key, or project mapping failed.403 Forbidden: API key inactive, or GEO subscription/plan requirement not met.429 Too Many Requests: Rate limit exceeded.500 Internal Server Error: Unexpected server error.
GET: Retrieve GEO Reports
Description
This route retrieves management GEO reports by report type for the authenticated API key context.
Method
GET
URL
/api/geo/reports
Query Parameters
type(string, required):analyticsurl-analysiskeyword-expansionsocial-brand-auditagent-readinesstrendsite-wideaction-plancitation-monitorprospect-snapshot
page(number, optional): Page number. Default:1. Maximum effective page:1000.limit(number, optional): Page size. Default:20. Maximum:100.from(string, optional): Start datetime/date filter (ISO).to(string, optional): End datetime/date filter (ISO).
Response
- Returns a JSON payload containing paginated report data for the selected report type.
Status Codes
200 OK: Reports retrieved successfully.400 Bad Request: Invalidtype.500 Internal Server Error: Error listing reports.
Throws
- An error if authentication, validation, or report retrieval fails.
Example cURL
curl --location 'https://app.ai12z.net/api/geo/reports?type=analytics&page=1&limit=10&from=2026-07-01&to=2026-07-31' \
--header 'x-api-key: <YOUR_KEY>'
GET: Retrieve GEO Report By Id
Description
This route retrieves a single management GEO report by ID.
Method
GET
URL Parameters
id(string): The GEO report ID.
URL
/api/geo/reports/{id}
Response
- Returns a JSON payload with the report and inferred report type.
Status Codes
200 OK: Report retrieved successfully.404 Not Found: Report not found.500 Internal Server Error: Error retrieving report.
Throws
- An error if authentication or report retrieval fails.
Example cURL
curl --location 'https://app.ai12z.net/api/geo/reports/{id}' \
--header 'Authorization: Bearer <YOUR_KEY>'
GET: Retrieve GEO Dashboard
Description
This route retrieves an aggregate GEO dashboard payload, including key scores and latest reports across GEO report categories.
Method
GET
URL
/api/geo/dashboard
Query Parameters
from(string, optional): Start datetime/date filter (ISO).to(string, optional): End datetime/date filter (ISO).
Response
- Returns a JSON payload including:
projectIdorgIdgeneratedAtrangescoreslatestReports
Status Codes
200 OK: Dashboard retrieved successfully.500 Internal Server Error: Error retrieving dashboard.
Throws
- An error if authentication or dashboard retrieval fails.
Example cURL
curl --location 'https://app.ai12z.net/api/geo/dashboard?from=2026-07-01T00:00:00.000Z&to=2026-07-31T23:59:59.999Z' \
--header 'x-api-key: <YOUR_KEY>'
GET: Retrieve In-Progress GEO Job Count
Description
This route returns the count of GEO jobs currently in IN_PROGRESS or queued state for the authenticated API key context.
Method
GET
URL
/api/geo/jobs/in-progress-count
Query Parameters
type(string, optional): One job type or a comma-separated list.types(string[], optional): Repeated query parameter for multiple job types.
Allowed type values:
analyticsurl-analysiskeyword-expansionsocial-brand-auditagent-readinesstrendsite-wideaction-plancitation-monitorprospect-snapshot
Response
- Returns JSON in this shape:
{
"count": 3
}
Status Codes
200 OK: Count retrieved successfully.400 Bad Request: Invalid type filter.500 Internal Server Error: Error retrieving job count.
Throws
- An error if authentication, validation, or count query fails.
Example cURL
curl --location --get 'https://app.ai12z.net/api/geo/jobs/in-progress-count' \
--header 'x-api-key: <YOUR_KEY>' \
--data-urlencode 'type=analytics,trend,citation-monitor'
curl --location --get 'https://app.ai12z.net/api/geo/jobs/in-progress-count' \
--header 'x-api-key: <YOUR_KEY>' \
--data-urlencode 'types=analytics' \
--data-urlencode 'types=trend' \
--data-urlencode 'types=citation-monitor'