GEO

Update GEO analysis by ID

Changed on

label, timezone, schedule and region are free to change and never start a run.

Sending any of competitors, providers, scopes or topicClusters makes it a settings update. Omitted settings fields keep the latest run's values. If the resulting settings are the same as the latest run's, in any order, nothing runs and nothing is charged. Otherwise a new run starts, replacing any run still in progress, and metadata.credits.cost quotes it. Pages never bill on an update; queries bill per provider.

topicClusters replaces the full set. Send the id a previous response returned to keep a cluster or prompt. One without an id keeps the current cluster with the same topic, or prompt with the same text; otherwise it is new and gets a fresh id. Ids are returned in topicClusters.

Updates are idempotent: repeating one that already applied resolves to the same settings, so it starts nothing and charges nothing.

patch/v1/geo/analyses/{configId}

Request

  • Base URL
    https://api.jasper.ai
  • URL
    https://api.jasper.ai/v1/geo/analyses/{configId}
  • Auth
    • API key in header X-API-Key
    • or OAuth 2
      Authorization code: https://api.jasper.ai/oauth2/authorize
      Token URL: https://api.jasper.ai/oauth2/token scopes: user

Path parameters

configIdstring required
Example:agc_ABC123

Request body

providersstring[]

AI providers to query.

labelstring
timezonestring

IANA timezone.

schedule'daily' | 'weekly' | 'monthly' | 'one-off'

How often the analysis re-runs. one-off requires an entitlement.

region'US' | 'GB' | 'AU' | 'CA' | 'NZ' | 'IE' | 'ZA' | 'HK' | 'AE' nullable

Country market provider web searches are localized to. null resets to provider defaults. Setting a region requires the aeo-geo-region entitlement.

Example request

{
  "competitors": [
    {
      "name": "Acme",
      "url": "https://acme.example.com"
    }
  ],
  "scopes": [
    {
      "kind": "internal",
      "url": "https://www.jasper.ai",
      "match": "hostname"
    }
  ],
  "topicClusters": [
    {
      "topic": "AI writing assistants",
      "prompts": [
        {
          "prompt": "What is the best AI writing assistant for marketing teams?",
          "sources": [
            {
              "url": "https://www.jasper.ai/pricing"
            }
          ]
        }
      ]
    }
  ],
  "label": "Jasper",
  "timezone": "America/New_York"
}

Response

requestIdstring required
resourcestring required

Example response

{
  "requestId": "8393f82b3f6a4f6e8a405777b9305254",
  "resource": "knowledge",
  "data": {
    "configId": "agc_ABC123",
    "label": "Jasper",
    "website": "https://www.jasper.ai",
    "timezone": "America/New_York",
    "region": "US",
    "status": {
      "type": "active"
    },
    "latestRun": {
      "runId": "aga_ABC123",
      "configId": "agc_ABC123",
      "runDate": "2026-09-08",
      "createdAt": "2026-09-08T04:02:11.000Z",
      "updatedAt": "2026-09-08T04:12:07.000Z"
    },
    "schedule": "weekly",
    "nextScheduledAnalysisAt": "2026-10-12T00:00:00.000Z",
    "topicClusters": [
      {
        "topic": "AI writing assistants",
        "prompts": [
          {
            "prompt": "What is the best AI writing assistant for marketing teams?"
          }
        ]
      }
    ],
    "metadata": {
      "credits": {
        "cost": 120
      }
    }
  }
}

Changes