Skip to main content
POST
/
reports
/
queries
Queries report
curl --request POST \
  --url https://api.geoark.ai/api/customer/v1/reports/queries \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "brand_id": "<string>",
  "project_id": "<string>",
  "start_date": "2023-12-25",
  "end_date": "2023-12-25",
  "limit": 1000,
  "offset": 0
}
'
{
  "data": "<array>",
  "total": 123
}

POST /reports/queries

Returns prompts (queries) and their latest response: visibility, position, sentiment. Use for prompt-level and response-level reporting. Each item includes the prompt that was asked (query.queryText) — the exact query text that was executed — so you can see which prompt produced each result. Endpoint: POST https://api.geoark.ai/api/customer/v1/reports/queries

Request

Send your API key in the X-API-Key header or as api_key query parameter (see Authentication). Body (JSON, all optional):
FieldTypeDescription
brand_idstringFilter by brand ID. Omit for all brands.
project_idstringAlias for brand_id.
start_datestringStart date YYYY-MM-DD. Default: 30 days ago.
end_datestringEnd date YYYY-MM-DD. Default: today.
limitnumberMax items. Default: 1000.
offsetnumberPagination offset. Default: 0.

Response

Each object in data includes:
  • query — The executed prompt: id, queryText (the prompt that was asked), and platform (CHATGPT, CLAUDE, GEMINI, PERPLEXITY, GROK, DEEPSEEK, or LLAMA).
  • brand — Brand the query belongs to.
  • executedAt — When the query was run.
  • latestResult — Latest visibility, position, and sentiment for that query.
{
  "data": [
    {
      "query": { "id": "...", "queryText": "best CRM software", "platform": "CHATGPT" },
      "brand": { "id": "...", "name": "Acme Inc" },
      "executedAt": "2025-02-20T14:00:00.000Z",
      "latestResult": {
        "brandMentioned": true,
        "visibilityScore": 85,
        "position": 2,
        "sentimentScore": 72
      }
    }
  ],
  "total": 42
}

Status codes

  • 200 — Success
  • 400 — Validation error
  • 401 — Invalid or missing API key
  • 402 — Paid subscription required (Custom plan)

Authorizations

X-API-Key
string
header
required

API key from Dashboard → API Keys (Custom plan).

Body

application/json
brand_id
string

Filter by brand ID. Omit for all brands.

project_id
string

Alias for brand_id (integration compatibility).

start_date
string<date>

Start date (YYYY-MM-DD). Default: 30 days ago.

end_date
string<date>

End date (YYYY-MM-DD). Default: today.

limit
integer
default:1000

Max items to return.

Required range: 1 <= x <= 10000
offset
integer
default:0

Offset for pagination.

Required range: x >= 0

Response

Queries report

data
array
total
integer