Lumirank API docs
Answers

List answers

GET/v1/answers

Returns AI answers with their text, 1 row per answer, oldest first. The list has only complete answers, the same answers as the Results page of the dashboard: an answer that is still running or that failed is not in the list. start_date and end_date select answers by answered_at.

To get the brands and sources in each answer, call /v1/mentions and /v1/citations, and match their rows to the answers by answer_id. The answers of archived prompts are left out unless you send include_archived=true.

Authorization

apiKey
AuthorizationBearer <token>

An API key that you create in the Lumirank dashboard, on the Settings > API keys page. Send it in the Authorization header: Bearer lr_....

In: header

Query Parameters

start_date?string

The first day of the date range, as a UTC date in the format YYYY-MM-DD. The range includes this day. The default is 29 days before end_date, so the default range is 30 days.

Formatdate
end_date?string

The last day of the date range, as a UTC date in the format YYYY-MM-DD. The range includes this day. The default is today. The range can be at most 90 days long.

Formatdate
prompt_id?string

The ids of the prompts to include, separated by commas. Without it, every prompt that is not archived is included. The id of an archived prompt gets status 400 unless you send include_archived=true.

engine?string

The engines to include, separated by commas: chatgpt, gemini, perplexity, ai_mode, copilot, google_ai_overview, claude. Without it, every engine is included.

country?string

The countries to include, separated by commas, as 2-letter ISO 3166-1 country codes in capital or small letters. Without it, every country is included.

include_archived?boolean

Send true to include the answers of archived prompts. The default is false: they are left out, as in the dashboard.

Defaultfalse
limit?integer

The number of rows on each page, from 1 to 100. The default is 50.

Formatint32
offset?integer

The number of rows to skip before this page starts. The default is 0. For the next page, add limit to offset.

Formatint32

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/answers?start_date=2026-09-01&end_date=2026-09-30&prompt_id=a41e7c52-3d6b-4f0a-9c8e-1b2d3e4f5a60&engine=chatgpt%2Cperplexity&country=US&include_archived=true&limit=50&offset=0"

answers

{  "data": [    {      "id": "f3a91c27-8d4e-4b5f-a6c7-9e0f1a2b3c4d",      "prompt_id": "a41e7c52-3d6b-4f0a-9c8e-1b2d3e4f5a60",      "prompt_text": "What is the best CRM for a 5 person sales team?",      "engine": "chatgpt",      "country": "US",      "answered_at": "2026-10-07T04:12:55Z",      "brand_mentioned": true,      "brand_position": 2,      "brand_sentiment": 42,      "brands_ranked": 6,      "citation_count": 9,      "text": "For a 5 person team, the strongest options are Globex, Acme, and Initech.",      "text_format": "markdown"    }  ],  "meta": {    "total": 1240,    "limit": 1,    "offset": 0,    "has_more": true  }}