> ## Documentation Index
> Fetch the complete documentation index at: https://docs.genrank.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Brand Data: Configuration Fields in the API

> Understand the brand configuration fields in every GenRank API response — brand name, domain, geo targeting, and the last_checked timestamp.

Every GenRank API response is anchored to a brand configuration: the brand name, domain, and geographic target that you defined when setting up your GenRank integration. These fields appear at the top level of every response object and tell you exactly which brand, which market, and which prompt run the data belongs to.

Understanding these fields is important when you are working with multiple brands, multiple geographies, or when you need to correctly label and route incoming data to the right part of your downstream system.

## Brand configuration fields

The following fields appear in every top-level API response object.

<ResponseField name="brand" type="string" required>
  The name of the tracked brand as configured in your GenRank account. This is the string GenRank uses when detecting brand mentions in ChatGPT responses.

  Example: `"GenRank"`
</ResponseField>

<ResponseField name="domain" type="string" required>
  The primary domain associated with the tracked brand. GenRank uses this field to identify citation mentions — instances where ChatGPT links or refers to your website specifically.

  Example: `"genrank.io"`
</ResponseField>

<ResponseField name="geo" type="string" required>
  The geographic market for which the prompt was executed. GenRank runs prompts in a way that simulates a user from the specified region, so results reflect what ChatGPT returns for users in that market.

  Common values include `"US"`, `"UK"`, `"EU"`, `"AU"`, and other ISO country or region codes. Your available geo targets depend on your account configuration.

  Example: `"US"`
</ResponseField>

<ResponseField name="query" type="string" required>
  The exact prompt text that was submitted to ChatGPT for this data point. Each response object corresponds to a single prompt run, so this field identifies which question generated the mention and visibility data in the response.

  Example: `"best chatgpt brand tracker"`
</ResponseField>

<ResponseField name="last_checked" type="string" required>
  An ISO 8601 timestamp indicating when GenRank last executed this prompt and captured the response. This field tells you the freshness of the data — GenRank runs prompts daily, so this value should typically reflect the most recent daily run.

  Example: `"2025-09-26T10:00:00Z"`
</ResponseField>

## Sample response (brand fields)

The following shows a GenRank API response with brand configuration fields populated. The `mentions` array is truncated here — see [Mentions](/api/mentions) for full field documentation.

```json theme={null}
{
  "brand": "GenRank",
  "domain": "genrank.io",
  "geo": "US",
  "query": "best chatgpt brand tracker",
  "mentions": [...],
  "last_checked": "2025-09-26T10:00:00Z"
}
```

## What geo targeting means

The `geo` field is not just a label — it determines how GenRank executes the prompt. When a geo target is set to `"US"`, prompts are run in a context that simulates a US-based user asking ChatGPT. This matters because ChatGPT's responses can vary by region: different brands are recommended, different sources are cited, and local market context influences the output.

If you are tracking a brand across multiple markets, you will receive separate response objects per geo — one for each market you have configured. Use the `geo` field to route or segment that data correctly in your downstream systems.

<Tip>
  If you are building a reporting dashboard that covers multiple geographies, always group and filter by the `geo` field rather than assuming all responses represent the same market.
</Tip>

## Tracking freshness with `last_checked`

The `last_checked` timestamp is your signal for data freshness. GenRank runs all tracked prompts daily, so under normal operation, this value will be no more than 24–48 hours old.

If you are storing GenRank data in your own database and want to avoid processing stale duplicates, compare the incoming `last_checked` value against the most recent stored value for the same `brand` + `geo` + `query` combination. Only store the record if the timestamp is newer.

```python theme={null}
from datetime import datetime

def is_fresh(existing_checked: str, incoming_checked: str) -> bool:
    existing = datetime.fromisoformat(existing_checked.replace("Z", "+00:00"))
    incoming = datetime.fromisoformat(incoming_checked.replace("Z", "+00:00"))
    return incoming > existing
```

## How brand settings map to what is tracked

Your brand configuration is set once during onboarding and serves as the foundation for every data point GenRank collects. If you need to update your brand name, domain, or geo targets — for example, because you are expanding into a new market or rebranding — contact GenRank to update your configuration. Changes take effect from the next daily data run.

<Info>
  GenRank tailors the integration to your needs. If you want to track multiple brands, multiple domains, or additional geographic markets beyond your current setup, reach out to discuss expanding your configuration.
</Info>
