---
title: "Get aggregate GEO sentiment"
method: GET
path: "/v1/projects/{projectId}/geo/sentiment"
tags: ["GEO"]
---

# Get aggregate GEO sentiment

`GET /v1/projects/{projectId}/geo/sentiment`

## Request

- Base URL: `https://api.usenotra.com`
- URL: `https://api.usenotra.com/v1/projects/{projectId}/geo/sentiment`
- Auth: HTTP bearer

Returns current and previous-period sentiment metrics without starting billed analysis.

## Path parameters

- `projectId` string, required

## Query parameters

- `days` integer: Rolling window size in days. Ignored when from/to are set.
- `from` string
- `to` string

## Response `200`

Sentiment fetched successfully

- GeoSentimentResponse
  - `configured` true, required
  - `summary` object, required
    - `totalChecks` integer, required
    - `mentions` integer, required
    - `positive` integer, required
    - `neutral` integer, required
    - `negative` integer, required
    - `lastCheckedAt` string, nullable, required
    - `score` number, nullable, required
    - `classifiedMentions` integer, required
    - `unknownMentions` integer, required
    - `notMentioned` integer, required
    - `positiveShare` number, nullable, required
    - `neutralShare` number, nullable, required
    - `negativeShare` number, nullable, required
    - `classificationCoverage` number, nullable, required
  - `engines` object[], required
    - `totalChecks` integer, required
    - `mentions` integer, required
    - `positive` integer, required
    - `neutral` integer, required
    - `negative` integer, required
    - `lastCheckedAt` string, nullable, required
    - `score` number, nullable, required
    - `classifiedMentions` integer, required
    - `unknownMentions` integer, required
    - `notMentioned` integer, required
    - `positiveShare` number, nullable, required
    - `neutralShare` number, nullable, required
    - `negativeShare` number, nullable, required
    - `classificationCoverage` number, nullable, required
    - `engine` string, required
  - `points` object[], required
    - `totalChecks` integer, required
    - `mentions` integer, required
    - `positive` integer, required
    - `neutral` integer, required
    - `negative` integer, required
    - `lastCheckedAt` string, nullable, required
    - `score` number, nullable, required
    - `classifiedMentions` integer, required
    - `unknownMentions` integer, required
    - `notMentioned` integer, required
    - `positiveShare` number, nullable, required
    - `neutralShare` number, nullable, required
    - `negativeShare` number, nullable, required
    - `classificationCoverage` number, nullable, required
    - `day` string, required
  - `comparison` object
    - `current` object, required
      - `from` string, required
      - `to` string, required
    - `previous` object, required
      - `from` string, required
      - `to` string, required
    - `summary` object, required
      - `totalChecks` integer, required
      - `mentions` integer, required
      - `positive` integer, required
      - `neutral` integer, required
      - `negative` integer, required
      - `lastCheckedAt` string, nullable, required
      - `score` number, nullable, required
      - `classifiedMentions` integer, required
      - `unknownMentions` integer, required
      - `notMentioned` integer, required
      - `positiveShare` number, nullable, required
      - `neutralShare` number, nullable, required
      - `negativeShare` number, nullable, required
      - `classificationCoverage` number, nullable, required
    - `points` object[], required
      - `totalChecks` integer, required
      - `mentions` integer, required
      - `positive` integer, required
      - `neutral` integer, required
      - `negative` integer, required
      - `lastCheckedAt` string, nullable, required
      - `score` number, nullable, required
      - `classifiedMentions` integer, required
      - `unknownMentions` integer, required
      - `notMentioned` integer, required
      - `positiveShare` number, nullable, required
      - `neutralShare` number, nullable, required
      - `negativeShare` number, nullable, required
      - `classificationCoverage` number, nullable, required
      - `day` string, required
    - `delta` number, nullable, required
  - `organization` object, required
    - `id` string, required
    - `slug` string, required
    - `name` string, required
    - `logo` string, nullable, required

## Other responses

- `400`: Invalid request
- `401`: Missing or invalid API key
- `402`: GEO plan or available AI credits required
- `403`: Forbidden
- `404`: Organization, project or resource not found
- `409`: Conflict
- `500`: Internal server error
- `503`: Authentication or billing service unavailable

## Changes

- **2026-09-17** `358ec87b1f81`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/usenotra/apis/notra-api/changes/v1/projects/:projectId/geo/sentiment/get.md)

---

[API](https://skmtc.dev/usenotra/apis/notra-api.md) - [All operations](https://skmtc.dev/usenotra/apis/notra-api/llms.txt) - [OpenAPI document](https://skmtc.dev/usenotra/apis/notra-api/revisions/b2465e605a4d?raw)
