Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/geogridapi-io:geogridapi-io-schedules-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: GeoGrid Schedules API
version: 1.0.0
description: 'Geo-grid rank tracking API for Google Maps (local SEO). Send a Google Business Profile and a keyword: GeoGridAPI measures the listing''s rank in the Google Maps results at every point of a grid around it (square 3×3 to 9×9, or circle, diamond, hexagon, cross, ellipse, rectangle), and returns the rank matrix, the competitors ranking ahead, the change since the previous grid and a PNG heatmap. 1 credit = 1 grid point. Test keys (gga_test_) return free mock grids.'
termsOfService: https://geogridapi.io/en/legal/terms
contact:
name: GeoGridAPI
url: https://geogridapi.io
email: sav@localnord.fr
servers:
- url: https://api.geogridapi.io
security:
- bearerAuth: []
tags:
- name: Schedules
description: Repeated grids.
paths:
/v1/schedules:
post:
operationId: createSchedule
tags:
- Schedules
summary: Repeat a grid every week or month
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateScheduleRequest'
responses:
'201':
description: Schedule created.
content:
application/json:
schema:
$ref: '#/components/schemas/Schedule'
'400':
description: Invalid body.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Too many requests.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Unknown grid.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Grid already repeated.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
get:
operationId: listSchedules
tags:
- Schedules
summary: List repeated grids
responses:
'200':
description: Schedules.
content:
application/json:
schema:
type: object
properties:
object:
type: string
data:
type: array
items:
$ref: '#/components/schemas/Schedule'
'401':
description: Missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Too many requests.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/v1/schedules/{id}:
patch:
operationId: updateSchedule
tags:
- Schedules
summary: Pause or resume a repeated grid
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- status
properties:
status:
type: string
enum:
- active
- paused
responses:
'200':
description: Schedule.
content:
application/json:
schema:
$ref: '#/components/schemas/Schedule'
'401':
description: Missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Too many requests.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Unknown schedule.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
delete:
operationId: deleteSchedule
tags:
- Schedules
summary: Stop a repeated grid
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Deleted.
content:
application/json:
schema:
type: object
additionalProperties: true
'401':
description: Missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Too many requests.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Unknown schedule.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
Schedule:
type: object
properties:
id:
type: string
format: uuid
object:
type: string
enum:
- schedule
status:
type: string
enum:
- active
- paused
- stopped
stopped_reason:
type:
- string
- 'null'
mode:
type: string
frequency:
type: string
enum:
- weekly
- monthly
weekday:
type:
- integer
- 'null'
month_day:
type:
- integer
- 'null'
place:
type: object
description: The listing and the grid center.
properties:
place_id:
type: string
name:
type:
- string
- 'null'
lat:
type: number
lng:
type: number
keyword:
type: string
shape:
type: string
density:
type:
- string
- 'null'
size:
type: integer
radius_km:
type: number
points_per_run:
type: integer
credits_per_month:
type: integer
next_run_at:
type:
- string
- 'null'
format: date-time
last_run_at:
type:
- string
- 'null'
format: date-time
last_grid_id:
type:
- string
- 'null'
format: uuid
source_grid_id:
type:
- string
- 'null'
format: uuid
runs_count:
type: integer
created_at:
type: string
format: date-time
CreateScheduleRequest:
type: object
required:
- grid_id
- frequency
properties:
grid_id:
type: string
format: uuid
description: An existing completed grid to repeat.
frequency:
type: string
enum:
- weekly
- monthly
weekday:
type: integer
minimum: 1
maximum: 7
description: 'Weekly: 1 = Monday … 7 = Sunday (default 1).'
month_day:
type: integer
minimum: 1
maximum: 28
description: 'Monthly: day of the month (default 1).'
additionalProperties: false
Error:
type: object
required:
- error
properties:
error:
type: object
required:
- code
- message
properties:
code:
type: string
example: invalid_body
message:
type: string
example: 'keyword: Too small: expected string to have >=1 characters'
additionalProperties: true
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: gga_live_… or gga_test_… key from the console.
externalDocs:
description: Documentation
url: https://geogridapi.io/en/docs