---
title: "Run a GEO persona now"
method: POST
path: "/v1/projects/{projectId}/geo/personas/{personaId}/run"
tags: ["GEO"]
---

# Run a GEO persona now

`POST /v1/projects/{projectId}/geo/personas/{personaId}/run`

## Request

- Base URL: `https://api.usenotra.com`
- URL: `https://api.usenotra.com/v1/projects/{projectId}/geo/personas/{personaId}/run`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/usenotra/apis/notra-api/docs/v1/projects/:projectId/geo/personas/:personaId/run/post.ts> (a function with typed inputs; its response is checked against the schema)

Plays the persona's conversation now and uses AI credits at twice the rate of a single prompt check. API-based answer engines run synchronously, so the request can stay open for several minutes; `checks`, `mentions` and `engines` report their result. Tracked consumer apps are queued as a background scan named by `queuedScanId`; poll `GET /v1/projects/{projectId}/geo/scans/{scanId}` for that part. Use a client timeout of at least five minutes. After four minutes the API answers 409 while the run finishes on its own; do not retry, read `GET …/personas/{personaId}/results` instead.

## Path parameters

- `projectId` string, required
- `personaId` string, required

## Response `200`

API-based engines finished; a queued consumer-app scan is named by queuedScanId

- RunGeoPersonaResponse
  - `checks` integer, required: Answers recorded during this request by the API-based engines that responded.
  - `mentions` integer, required
  - `engines` string[], required
  - `queuedScanId` string, nullable: Scan that plays the persona in the tracked consumer apps in the background, or `null`. Poll `GET /v1/projects/{projectId}/geo/scans/{scanId}`.
  - `queuedEngines` string[]
  - `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`: Persona run is still running after the internal timeout; do not retry the run
- `429`: Rate limit exceeded. This endpoint allows 10 requests per 10 minutes per organization.
- `500`: Internal server error
- `503`: Authentication or billing service unavailable

## Changes

- **2026-11-05** `200d2ac38976`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/usenotra/apis/notra-api/changes/v1/projects/:projectId/geo/personas/:personaId/run/post.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/a81c93229b54?raw)
