Help Centre

API & MCP

Getting started with the API

Create an API key and make your first read-only request to the SearchOps API.

Last reviewed October 20264 min read

The SearchOps API lets you pull your data into your own tools, dashboards or scripts. Version 1 is read-only, so it is a safe way to read your locations, keywords, geo-grid scans (Google Maps, Google Search and AI Mode), Google Business Profile performance, LLM Visibility, reviews, competitors, tasks, reports, Search Console and Google Analytics data programmatically.

What you'll need

  • A plan that includes API access. The API is available on Pro and above.

Create an API key

  1. Go to Developers > API & MCP Credentials in the dashboard. (From Settings, Open API & MCP Credentials takes you to the same page.)
  2. Enter a name for the key, such as "Reporting script" or "Zapier", and select Create key.
  3. Copy the key straight away. It starts with lp_live_ and is shown once only, for security.

You can see your keys, when each was last used, and revoke any of them from the same card. Only account owners and admins can create or revoke keys.

Warning: Treat a key like a password. Never commit it to a public repository or put it in client-side code. If one is exposed, revoke it and create a new one.

Make your first request

Send your key as a bearer token in the Authorization header. For example, to list your locations:

curl https://searchops.co/api/v1/locations \
  -H "Authorization: Bearer lp_live_your_key_here"

A successful response looks like:

{ "data": [ ... ], "pagination": { "limit": 50, "offset": 0 } }

If you get a 401, the key is missing, wrong, or revoked. A 403 means the key is fine but the plan on the account no longer includes API access. A 429 means you have gone over the rate limit of 120 requests a minute; that limit is counted per key, not per IP address, so calls from a shared host such as Zapier or a CI runner do not eat into each other's budget.

Every request you make, including the ones that fail, is listed under Developers > API Event Logs with its status, latency, and which key was used. That is the fastest way to see what an integration is actually sending.

What you can read (v1)

All endpoints are GET only:

  • /api/v1/locations (add q to search by name, address or a town the business serves) and /api/v1/locations/{id}
  • /api/v1/locations/{id}/summary for every headline in one call
  • /api/v1/locations/{id}/keywords
  • /api/v1/locations/{id}/rankings: deprecated. It reads keyword rank history from the retired Google rank tracker and carries Deprecation and Sunset headers. For Google results, use /api/v1/scans
  • /api/v1/locations/{id}/ai-visibility?engine=chatgpt (or engine=gemini)
  • /api/v1/locations/{id}/ai-visibility/insights?engine=chatgpt&days=30: one engine's checks pooled over 7, 30 or 90 days, with each keyword's rate, who it names instead and the sources it cites
  • /api/v1/locations/{id}/chatgpt-visibility: deprecated. It returns the same as ai-visibility?engine=chatgpt and still answers so existing setups keep working
  • /api/v1/locations/{id}/reviews
  • /api/v1/locations/{id}/competitors: the rivals seen on the geo-grid, Google Search and ChatGPT, with where each was seen and its share of voice
  • /api/v1/locations/{id}/citations: retired. It answers 410 Gone
  • /api/v1/locations/{id}/week: the last 7 days of Business Profile calls, website clicks, directions and views against the week before, beside the tasks finished and this week's plan for the location
  • /api/v1/locations/{id}/profile/performance (add months and granularity): Business Profile performance over up to 18 months, by month, week or day, with any weekly drops
  • /api/v1/locations/{id}/profile/search-terms: what people searched when Google showed the profile
  • /api/v1/locations/{id}/profile/results: Business Profile results since SearchOps started, against the baseline
  • /api/v1/locations/{id}/posts: Google posts made, scheduled or drafted in SearchOps, and how often the profile posts
  • /api/v1/locations/{id}/geo-grid/insights: why the location wins or loses the Map Pack
  • /api/v1/locations/{id}/keywords/{keywordId}/grid-history (add engine): every scan of one keyword over time, and whether the latest change is a real move
  • /api/v1/locations/{id}/geo-grid/answers?keyword=... and /api/v1/scans/{id}/answers: what a Google Search or AI Mode grid scan found
  • /api/v1/scans and /api/v1/scans/{id}: geo-grid scans on any engine, with the result at every grid point
  • /api/v1/reports and /api/v1/reports/{id}
  • /api/v1/search-console/sites
  • /api/v1/search-console/sites/{siteId}/search-analytics for clicks, impressions, CTR and position by query, page, country, device or date
  • /api/v1/search-console/sites/{siteId}/insights for the analysed 30-day picture
  • /api/v1/tasks (filter with locationId and status) and /api/v1/tasks/{id}: your tasks, read-only, each with the week it is planned for, its steps and how it gets finished
  • /api/v1/analytics/properties, /api/v1/analytics/properties/{propertyId}/report and /api/v1/locations/{id}/analytics/ai-referrals, once Google Analytics is connected

List endpoints accept limit (up to 100) and offset for paging, and /scans accepts a locationId filter. Search Console data comes live from Google and lags about three days. Business Profile data lags about four days. A missing day or a profile that is not connected comes back as null or a clear error, never as zero. Every key is scoped to your account, so you only ever read your own data.

The full reference, with parameters and example responses for each endpoint, is under Developers > API Documentation. If you would rather generate a client than write the calls by hand, the API is described by an OpenAPI document at /api/v1/openapi.json, which needs no key to read.

Note: Version 1 is read-only. It does not create scans or change data. Write access is planned for a future version.

Next steps

Was this helpful?

Related articles

Still stuck? Contact our support team and we'll help you out, usually within one UK working day.