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

# GEO Assets Reports — List, View, and Download

> Retrieve completed GEO Asset reports by jobId. List all reports, read individual file contents, or download the full ZIP archive via the REST API.

Once a GEO Assets generation job completes, you can retrieve the results through three endpoints: list all your reports, read individual file contents for a specific job, or download all seven files as a ZIP archive for deployment.

## List all GEO reports

Returns a summary list of every GEO Assets job you have run.

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.cognerd.in/api/geo-assets/reports \
    -H "Authorization: Bearer YOUR_TOKEN"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.cognerd.in/api/geo-assets/reports', {
    headers: { 'Authorization': 'Bearer YOUR_TOKEN' }
  });
  const reports = await response.json();
  ```
</CodeGroup>

### Response

```json theme={null}
[
  {
    "jobId": "geo_abc123",
    "url": "https://yoursite.com",
    "status": "completed",
    "createdAt": "2024-01-15T10:30:00Z"
  }
]
```

<ResponseField name="jobId" type="string">
  The unique job identifier. Use this to fetch file contents or download the ZIP.
</ResponseField>

<ResponseField name="url" type="string">
  The website URL that was crawled.
</ResponseField>

<ResponseField name="status" type="string">
  Final job status: `"completed"` or `"failed"`.
</ResponseField>

<ResponseField name="createdAt" type="string">
  ISO 8601 timestamp when the job was created.
</ResponseField>

***

## Get GEO report file contents

Returns the text content of all seven generated files for a specific job.

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.cognerd.in/api/geo-assets/reports/geo_abc123 \
    -H "Authorization: Bearer YOUR_TOKEN"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.cognerd.in/api/geo-assets/reports/geo_abc123', {
    headers: { 'Authorization': 'Bearer YOUR_TOKEN' }
  });
  const files = await response.json();
  console.log(files['llms.txt']);
  ```
</CodeGroup>

### Response

```json theme={null}
{
  "llms.txt": "# YourBrand\n\nYourBrand is a ...",
  "robots.txt": "User-agent: GPTBot\nAllow: /\n...",
  "sitemap.xml": "<?xml version=\"1.0\" ...",
  "site.jsonld": "{\"@context\": \"https://schema.org\", ...}",
  "organization.jsonld": "{\"@context\": \"https://schema.org\", ...}",
  "website.jsonld": "{\"@context\": \"https://schema.org\", ...}",
  "entities.json": "{\"entities\": [...]}"
}
```

<Tip>
  Use this endpoint to programmatically embed the JSON-LD files into your pages or push them to your CMS. The `llms.txt` content should be served at `https://yourdomain.com/llms.txt`.
</Tip>

***

## Download GEO report as ZIP

Downloads all seven GEO files bundled as a ZIP archive.

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.cognerd.in/api/geo-assets/reports/geo_abc123/download \
    -H "Authorization: Bearer YOUR_TOKEN" \
    -o geo-assets.zip
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://api.cognerd.in/api/geo-assets/reports/geo_abc123/download',
    { headers: { 'Authorization': 'Bearer YOUR_TOKEN' } }
  );
  const blob = await response.blob();
  // Save or process the ZIP blob
  ```
</CodeGroup>

The response is a binary ZIP file (`Content-Type: application/zip`). Extract it to get the seven files ready for deployment.

## Deploying the files

After downloading, deploy each file to the correct location:

| File                  | Where to put it                                            |
| --------------------- | ---------------------------------------------------------- |
| `llms.txt`            | `https://yourdomain.com/llms.txt` (web root)               |
| `robots.txt`          | `https://yourdomain.com/robots.txt` (merge with existing)  |
| `sitemap.xml`         | `https://yourdomain.com/sitemap.xml`                       |
| `site.jsonld`         | Embed as `<script type="application/ld+json">` in `<head>` |
| `organization.jsonld` | Embed as `<script type="application/ld+json">` in `<head>` |
| `website.jsonld`      | Embed as `<script type="application/ld+json">` in `<head>` |
| `entities.json`       | Serve at `https://yourdomain.com/entities.json`            |

## Error responses

| Status | Code             | Meaning                             |
| ------ | ---------------- | ----------------------------------- |
| 401    | `UNAUTHORIZED`   | Missing or invalid Bearer token     |
| 404    | `NOT_FOUND`      | No report found for the given jobId |
| 500    | `INTERNAL_ERROR` | Server error retrieving the report  |
