gmaps.dev Coverage API

The Coverage API from gmaps.dev — 1 operation(s) for coverage.

GitHub OpenAPI

Operations 1

POST /coverage Check an area's coverage #

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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/gmaps-dev:gmaps-dev-coverage-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

gmaps-dev-coverage-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Gmaps Dev Coverage API
  version: 0.1.0
  description: 'Operations tagged Coverage across 2 of this provider''s published API definitions: openapi.json, gmaps-dev-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.gmaps.dev/v1
tags:
- name: Coverage
  x-displayName: Coverage
paths:
  /coverage:
    post:
      operationId: get_coverage
      tags:
      - Coverage
      summary: Check an area's coverage
      description: See how much of an area we have already searched for a term, when we last searched it, and how many places we have saved there. Use it to decide whether to collect again or just read the saved places. Needs an API key. Costs no credits and starts nothing.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                keywords:
                  minItems: 1
                  type: array
                  items:
                    type: string
                  description: 'What you would search for, such as ["bakery"]. Coverage is per term: we may have searched an area for one and never for another.'
                geo:
                  anyOf:
                  - type: object
                    properties:
                      location:
                        type: string
                        minLength: 1
                    required:
                    - location
                    additionalProperties: false
                  - type: object
                    properties:
                      lat:
                        type: number
                        minimum: -90
                        maximum: 90
                      lng:
                        type: number
                        minimum: -180
                        maximum: 180
                      radiusM:
                        type: number
                        exclusiveMinimum: 0
                    required:
                    - lat
                    - lng
                    - radiusM
                    additionalProperties: false
                  - type: object
                    properties:
                      bbox:
                        type: array
                        prefixItems:
                        - type: number
                          minimum: -180
                          maximum: 180
                        - type: number
                          minimum: -90
                          maximum: 90
                        - type: number
                          minimum: -180
                          maximum: 180
                        - type: number
                          minimum: -90
                          maximum: 90
                        items: false
                        minItems: 4
                        maxItems: 4
                    required:
                    - bbox
                    additionalProperties: false
                  - type: object
                    properties:
                      cityIbge:
                        type: integer
                        minimum: 1000000
                        maximum: 9999999
                      radiusKm:
                        type: number
                        exclusiveMinimum: 0
                    required:
                    - cityIbge
                    - radiusKm
                    additionalProperties: false
                  description: 'The area. Give exactly one of: a Brazilian city as location, a lat/lng point with radiusM, a bbox, or a cityIbge with radiusKm.'
                lang:
                  default: pt
                  description: The language the search would run in. Two letters, such as pt or en.
                  type: string
                  pattern: ^[a-z]{2}$
              required:
              - keywords
              - geo
      security:
      - apiKey: []
      responses:
        '200':
          description: Check an area's coverage
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: object
                    properties:
                      coverage:
                        type: string
                        enum:
                        - fresh
                        - partial
                        - new
                        description: '`fresh`: we searched all of it recently. `new`: none of it. `partial`: some.'
                      squaresTotal:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                        description: 'How many searches the area takes: one per square of the area, for each term.'
                      squaresCovered:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                        description: How many of those we searched recently enough to reuse. Their places cost nothing.
                      squaresToSearch:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                        description: How many searches a collection would still have to run. Each takes a few minutes.
                      placesKnown:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                        description: Places we have saved in this area. They cost nothing.
                      searchedAt:
                        anyOf:
                        - type: object
                          properties:
                            oldest:
                              type: string
                              format: date-time
                              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                            newest:
                              type: string
                              format: date-time
                              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          required:
                          - oldest
                          - newest
                          additionalProperties: false
                        - type: 'null'
                        description: When we searched the covered squares, oldest and newest. Null when we searched none.
                      freshForDays:
                        type: integer
                        exclusiveMinimum: 0
                        maximum: 9007199254740991
                        description: How many days a search stays good for. After that, a collection searches the square again.
                      emptyFreshForDays:
                        type: integer
                        exclusiveMinimum: 0
                        maximum: 9007199254740991
                        description: How many days a search that found no places stays good for. It is far shorter, because finding nothing can also mean the search was blocked.
                    required:
                    - coverage
                    - squaresTotal
                    - squaresCovered
                    - squaresToSearch
                    - placesKnown
                    - searchedAt
                    - freshForDays
                    - emptyFreshForDays
                    additionalProperties: false
                  meta:
                    anyOf:
                    - type: object
                      properties:
                        total:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                          description: Every item that matches, not just this page.
                        limit:
                          type: integer
                          exclusiveMinimum: 0
                          maximum: 9007199254740991
                          description: The most items a page holds.
                        offset:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                          description: How many items came before this page.
                        hasMore:
                          type: boolean
                          description: True when another page follows.
                      required:
                      - total
                      - limit
                      - offset
                      - hasMore
                      additionalProperties: false
                    - type: object
                      properties:
                        cost:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                          description: Credits this call took.
                        creditsRemaining:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                          description: Credits left after this call, this month's and bought ones together.
                        requestId:
                          type: string
                          minLength: 1
                          description: This call's id. Send it to support if something went wrong.
                        cached:
                          description: True when this response used only saved results.
                          type: boolean
                      required:
                      - cost
                      - creditsRemaining
                      - requestId
                      additionalProperties: false
        default:
          description: Any other failure.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      x-sdk:
        method: coverage.get
        returns: CoverageDto
        repeatable: true
      x-mcp-tool: get_coverage
    servers:
    - url: https://api.gmaps.dev/v1
components:
  schemas:
    ApiError:
      type: object
      required:
      - error
      properties:
        error:
          type: object
          required:
          - code
          - message
          properties:
            code:
              type: string
              enum:
              - VALIDATION_ERROR
              - UNAUTHORIZED
              - INVALID_TOKEN
              - PLAN_GATE
              - AUP_REQUIRED
              - FORBIDDEN
              - NOT_FOUND
              - PLACE_NOT_FOUND
              - COLLECTION_NOT_FOUND
              - EXPORT_NOT_FOUND
              - CONFLICT
              - PAYLOAD_TOO_LARGE
              - GEO_UNRESOLVED
              - UPSTREAM_BLOCKED
              - RATE_LIMIT_EXCEEDED
              - QUOTA_EXCEEDED
              - INTERNAL_ERROR
              - ENGINE_UNAVAILABLE
              - SERVICE_UNAVAILABLE
              - BILLING_UNAVAILABLE
              description: What went wrong, as a word a program can check.
            message:
              type: string
              description: What went wrong, as a sentence.
            messageKey:
              type: string
              description: '`message` as a key, to show it in your reader''s language, with `params` filling its blanks.'
            params:
              type: object
              additionalProperties:
                type:
                - string
                - number
              description: The values that fill `messageKey`'s blanks, such as a limit.
            details:
              description: More about this error, such as retryAfterSecs.
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: 'Send your API key as "Authorization: Bearer gm_…".'
x-refined-from:
- openapi.json
- gmaps-dev-openapi.json
x-provenance:
  method: harvested
  publisher: gmaps.dev
  source: https://api.gmaps.dev/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)