Citera home
Browse documentation

Local

Local

Read locations, run Local, and manage recommendations and location data.

Summarize with AIChatGPTClaudePerplexity

Product response envelope

Current product endpoints return a resource envelope: data.object, data.brand_id, data.page, and nested data.data containing the dashboard data. Pagination fields for these endpoints are inside data.data. Unknown measurements remain null; verified zeros remain 0. Sensitive values are redacted.

Write scopes require beta enrollment. Draft and calendar edits do not publish content. External effects require the confirmation rules described below.

All Local endpoints require the local_geo plan feature.

GET …/local (local:read), operation get_local

Query: run_id (optional UUID in the brand), limit (default 50), offset cursor. data: runs, locations, recommendations and — with run_id — that run's observations, scorecards, trends. Empty measurements are not proof of success.

POST …/local/runs (local:write), operation run_local

Body: { "confirm": true }. Costs 5 credits. Uses enqueue_local_geo_run, which reuses an active run and enforces the plan, confirmed locations and the 24-hour manual-run limit (429 rate_limited). Returns { run_id, poll_with: "rankad_get_local", job_system: "local_geo_runs" }. Poll GET …/local?run_id=…, not /jobs.

PATCH …/local/recommendations/{recommendation_id}, operation set_local_recommendation_status

Body: { "status": "open" | "done" | "dismissed" }. Records the customer decision; it does not claim the issue was measured as resolved.

POST …/local/locations / PATCH …/local/locations/{location_id}, operations create_local_location / update_local_location

Body field

Rules

name, city

required, 1–200 chars

country_code

required, ISO 3166-1 alpha-2 uppercase

services

required array (≤ 50, each 1–200 chars)

geo_source

required: dataset | manual | none

needs_confirmation

required boolean

region (≤ 200), address (≤ 500)

optional, nullable

latitude (−90..90), longitude (−180..180)

optional, nullable

has_storefront

optional boolean

pinned_place_id (≤ 300), pinned_cid (≤ 100)

optional, nullable

status

optional: active | paused

The same schema is used for PATCH, so send the full required set. The database enforces the active-location plan cap (429 quota_exceeded). Saving a location does not run a scan.