GeoGridAPI · Schema

Grid

GeoGridAPIMappingSEOBusiness

Properties

Name Type Description
id string
object string
status string
mode string
source string
api_key_id stringnull
place object
keyword string
shape string
density stringnull
size integer
rows integer
cols integer
radius_km number
language string
country stringnull
points_total integer Grid points measured (points at sea are neither measured nor charged).
points_charged integer Credits charged to the GeoGridAPI balance (0 with a test key or through RapidAPI).
summary object
ranks arraynull rows × cols matrix, row 0 = north, column 0 = west. null = not in the top 20 (or outside the shape).
points arraynull
competitors arraynull Who ranks ahead: the top 3 listings summed over the map.
previous object
error object
webhook objectnull Delivery of the webhook_url, when one was given.
created_at string
completed_at stringnull
View JSON Schema on GitHub

JSON Schema

geogridapi-io-grid-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/geogridapi-io/json-schema/geogridapi-io-grid-schema.json",
  "title": "Grid",
  "x-generated": "2026-11-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/geogridapi-io-openapi.json#/components/schemas/Grid",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "object": {
      "type": "string",
      "enum": [
        "grid"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "running",
        "completed",
        "failed"
      ]
    },
    "mode": {
      "type": "string",
      "enum": [
        "live",
        "test"
      ]
    },
    "source": {
      "type": "string",
      "enum": [
        "api",
        "mcp",
        "console"
      ]
    },
    "api_key_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "place": {
      "$ref": "#/$defs/Place"
    },
    "keyword": {
      "type": "string"
    },
    "shape": {
      "type": "string"
    },
    "density": {
      "type": [
        "string",
        "null"
      ]
    },
    "size": {
      "type": "integer"
    },
    "rows": {
      "type": "integer"
    },
    "cols": {
      "type": "integer"
    },
    "radius_km": {
      "type": "number"
    },
    "language": {
      "type": "string"
    },
    "country": {
      "type": [
        "string",
        "null"
      ]
    },
    "points_total": {
      "type": "integer",
      "description": "Grid points measured (points at sea are neither measured nor charged)."
    },
    "points_charged": {
      "type": "integer",
      "description": "Credits charged to the GeoGridAPI balance (0 with a test key or through RapidAPI)."
    },
    "summary": {
      "$ref": "#/$defs/GridSummary"
    },
    "ranks": {
      "type": [
        "array",
        "null"
      ],
      "description": "rows × cols matrix, row 0 = north, column 0 = west. null = not in the top 20 (or outside the shape).",
      "items": {
        "type": "array",
        "items": {
          "type": [
            "integer",
            "null"
          ]
        }
      }
    },
    "points": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/GridPoint"
      }
    },
    "competitors": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/$defs/Competitor"
      },
      "description": "Who ranks ahead: the top 3 listings summed over the map."
    },
    "previous": {
      "$ref": "#/$defs/PreviousGrid"
    },
    "error": {
      "$ref": "#/$defs/GridError"
    },
    "webhook": {
      "type": [
        "object",
        "null"
      ],
      "description": "Delivery of the webhook_url, when one was given.",
      "properties": {
        "status": {
          "type": [
            "string",
            "null"
          ]
        },
        "attempts": {
          "type": "integer"
        }
      }
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "completed_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    }
  },
  "$defs": {
    "Competitor": {
      "type": "object",
      "properties": {
        "place_id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "top3_points": {
          "type": "integer",
          "description": "Points where it is in the top 3."
        },
        "first_points": {
          "type": "integer",
          "description": "Points where it ranks first."
        },
        "ahead_points": {
          "type": "integer",
          "description": "Points where it ranks ahead of your listing."
        }
      }
    },
    "GridError": {
      "type": [
        "object",
        "null"
      ],
      "description": "Why a grid (or a batch item) failed; null otherwise.",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      }
    },
    "GridPoint": {
      "type": "object",
      "properties": {
        "row": {
          "type": "integer",
          "description": "0 = north."
        },
        "col": {
          "type": "integer",
          "description": "0 = west."
        },
        "lat": {
          "type": "number"
        },
        "lng": {
          "type": "number"
        },
        "rank": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Position in the Google Maps results at this point; null = not in the top 20."
        },
        "top": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/TopListing"
          },
          "description": "Top 3 listings at this point."
        }
      }
    },
    "GridSummary": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "average_rank": {
          "type": [
            "number",
            "null"
          ],
          "description": "Mean rank over the points where the listing appears."
        },
        "average_rank_with_misses": {
          "type": [
            "number",
            "null"
          ],
          "description": "Mean rank with misses counted as 21."
        },
        "top3_points": {
          "type": "integer"
        },
        "found_points": {
          "type": "integer"
        }
      }
    },
    "Place": {
      "type": "object",
      "properties": {
        "place_id": {
          "type": "string"
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "address": {
          "type": [
            "string",
            "null"
          ]
        },
        "lat": {
          "type": "number"
        },
        "lng": {
          "type": "number"
        }
      }
    },
    "PreviousGrid": {
      "type": [
        "object",
        "null"
      ],
      "description": "Change since the previous grid of the same map (same listing, keyword, format, radius and center).",
      "properties": {
        "grid_id": {
          "type": "string",
          "format": "uuid"
        },
        "created_at": {
          "type": "string",
          "format": "date-time"
        },
        "average_rank": {
          "type": [
            "number",
            "null"
          ]
        },
        "top3_points": {
          "type": "integer"
        },
        "found_points": {
          "type": "integer"
        },
        "changes": {
          "type": "object",
          "properties": {
            "average_rank": {
              "type": [
                "number",
                "null"
              ],
              "description": "Negative = better."
            },
            "top3_points": {
              "type": "integer"
            },
            "found_points": {
              "type": "integer"
            }
          }
        },
        "ranks": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "type": [
                "integer",
                "null"
              ]
            }
          }
        },
        "rank_changes": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "type": [
                "integer",
                "null"
              ]
            }
          },
          "description": "Places gained per cell (positive = better, a miss counts as 21)."
        },
        "points": {
          "type": "object",
          "properties": {
            "improved": {
              "type": "integer"
            },
            "worsened": {
              "type": "integer"
            },
            "unchanged": {
              "type": "integer"
            }
          }
        }
      }
    },
    "TopListing": {
      "type": "object",
      "properties": {
        "rank": {
          "type": "integer"
        },
        "place_id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/geogridapi-io-grid"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.