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

# Brand and domains

> Set the company name and aliases Notra matches in answers, the extra domains that send AI traffic to a project and the paths that count as conversions.

Open GEO settings from the settings menu (**Brand**, **Languages** and **Models**). Changes save automatically and apply to the active [project](/docs/geo/projects).

| Field | Meaning |
| - | - |
| **Company name** | The primary name matched in answers |
| **Aliases** | Up to 10 other spellings, product names or the bare domain |
| **Tracked domains** | Up to 20 extra sites besides the brand website. Notra includes their subdomains, and all of them use the same ingest token |
| **Conversion paths** | Paths that count as a conversion when an AI referral reaches them, for example `/signup`. Notra matches them by prefix |

<Tip>
  Add your bare domain (for example `usenotra.com`) as an alias, because engines often name a product by its domain.
</Tip>

You can also delete a project from this section. See [Projects](/docs/geo/projects).

## From the API

`PATCH` writes the full settings document and re-arms the recurring scan.

```bash theme={"system"}
curl -X PATCH https://api.usenotra.com/v1/projects/$PROJECT_ID/geo/settings \
  -H "Authorization: Bearer $NOTRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "companyName": "Notra",
    "aliases": ["usenotra", "usenotra.com"],
    "languages": ["en", "de"],
    "engines": ["anthropic/claude-sonnet-5", "openai/gpt-5.6-sol", "google/gemini-3.5-flash"],
    "enforceZdr": false,
    "nonZdrApprovedEngines": [],
    "enabled": true,
    "scanIntervalHours": 24
  }'
```

<ParamField body="companyName" type="string" required>
  1 to 128 characters.
</ParamField>

<ParamField body="aliases" type="string[]" required>
  Up to 10 entries.
</ParamField>

<ParamField body="conversionPaths" type="string[]">
  Paths that count as a conversion when an AI referral reaches them, matched by prefix. Omit the field to keep the stored list.
</ParamField>

<ParamField body="domains" type="string[]">
  Up to 20 additional hostnames, besides the brand website, that send AI traffic to this project. The list covers subdomains of each listed domain, and omitting the field keeps the stored list.
</ParamField>

<ParamField body="languages" type="string[]" required>
  1 to 4 supported language codes. The API rejects an unknown code with `400`.
</ParamField>

<ParamField body="engines" type="string[]" required>
  1 to 64 model ids from the catalog this organization can see (the ids `GET /geo/settings` returns). The API rejects an unknown id with `400`. Engines not visible to the caller keep their stored selection.
</ParamField>

<ParamField body="enforceZdr" type="boolean" required>
  Forced off without the ZDR add-on.
</ParamField>

<ParamField body="nonZdrApprovedEngines" type="string[]" required>
  Up to 64 model ids allowed to run despite lacking ZDR.
</ParamField>

<ParamField body="enabled" type="boolean" required>
  Whether recurring scans run.
</ParamField>

<ParamField body="scanIntervalHours" type="integer" required>
  One of 24, 48, 72, 168, 336, 720.
</ParamField>

The response returns the stored `settings` plus `scanStartedAt`, `lastScanAt` and `isScanning`, along with a `competitors` array that is read-only on this route. Both routes need the `geo-settings` scope.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.