CalmSEO API

CalmSEO API as documented publicly: 16 operations. Contract generated from the documentation by API Evangelist (2026-11-04); not the provider's own document.

Operations 16

POST /api/v1/serp/search POST /api/v1/serp/search #
POST /audits/page Page Audit Run a single URL on-page SEO audit using DataForSEO Instant Pages. #
POST /gsc/page-queries Page Queries Get Search Console queries that drove impressions and clicks for one page URL. #
POST /gsc/search-analytics Search Analytics Query clicks, impressions, CTR, and average position with custom dimensions and filters. #
GET /gsc/sitemaps List Sitemaps List submitted Google Search Console sitemaps for a connected property. #
GET /gsc/sites List GSC Sites List Google Search Console properties connected to the CalmSEO account. #
POST /gsc/top-pages Top Pages Get top Search Console pages for a property by clicks, impressions, CTR, and average position. #
POST /gsc/top-queries Top Queries Get top Search Console queries for a property by clicks, impressions, CTR, and average position. #
POST /gsc/url-inspection URL Inspection Check whether Google has indexed up to 25 URLs per call, with counts by coverage state and a row per URL. #
GET /health Check whether the CalmSEO API service is reachable. #
POST /keywords/ideas Keyword Ideas Expand seed keywords into a DataForSEO Labs keyword research set. #
POST /keywords/search-volume Keyword Search Volume Get Google Ads search volume, CPC, and competition for a batch of keywords. #
GET /mcp GET /mcp #
POST /rankings/keywords Ranked Keywords Find keywords a domain, subdomain, or page URL ranks for in Google. #
POST /serp/search SERP Search Run a live Google or Bing organic SERP search for a keyword, location, language, device, and depth. #
GET /tools Route discovery : call GET /tools to list the current API surface. #

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/calmseo-com:calmseo-com-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

calmseo-com-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: CalmSEO API
  version: '2026-11-04'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-04: 16 operation(s) read from 6 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; CalmSEO has published no machine-readable contract that the pipeline
    could find. Engine: local.'
  x-evidence-tiers:
    code-example: 2
    documentation: 14
    pages-with-code: 6
    pages-read: 6
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-04'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://calmseo.com/api
  - https://calmseo.com/docs/api
  - https://calmseo.com/google-search-console-mcp
  - https://calmseo.com/keyword-research-mcp
  - https://calmseo.com/connect-google-search-console-to-claude
  - https://calmseo.com/openseo-alternative
servers:
- url: https://api.calmseo.com
paths:
  /api/v1/serp/search:
    post:
      operationId: post_api_v1_serp_search
      tags:
      - Api
      summary: POST /api/v1/serp/search
      x-source: https://calmseo.com/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1SerpSearchRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl https://api.calmseo.com/api/v1/serp/search  -H \"Authorization: Bearer cseo_your_api_key\"  -H \"Content-Type: application/json\"\
          \  -d '{\n \"keyword\": \"dentist in Austin\",\n \"location_name\": \"United States\",\n \"language_name\": \"English\",\n \"depth\"\
          : 10\n }' The full reference includes request shapes, response format, error codes, and the discovery endpoint. Read the REST API docs\
          \ Interfaces Use the REST"
  /audits/page:
    post:
      operationId: post_audits_page
      tags:
      - Audits
      summary: Page Audit Run a single URL on-page SEO audit using DataForSEO Instant Pages.
      x-source: https://calmseo.com/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostAuditsPageRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /gsc/page-queries:
    post:
      operationId: post_gsc_page_queries
      tags:
      - Gsc
      summary: Page Queries Get Search Console queries that drove impressions and clicks for one page URL.
      x-source: https://calmseo.com/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostGscPageQueriesRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /gsc/search-analytics:
    post:
      operationId: post_gsc_search_analytics
      tags:
      - Gsc
      summary: Search Analytics Query clicks, impressions, CTR, and average position with custom dimensions and filters.
      x-source: https://calmseo.com/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostGscSearchAnalyticsRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /gsc/sitemaps:
    get:
      operationId: get_gsc_sitemaps
      tags:
      - Gsc
      summary: List Sitemaps List submitted Google Search Console sitemaps for a connected property.
      x-source: https://calmseo.com/docs/api
      parameters:
      - name: site_url
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /gsc/sites:
    get:
      operationId: get_gsc_sites
      tags:
      - Gsc
      summary: List GSC Sites List Google Search Console properties connected to the CalmSEO account.
      x-source: https://calmseo.com/docs/api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /gsc/top-pages:
    post:
      operationId: post_gsc_top_pages
      tags:
      - Gsc
      summary: Top Pages Get top Search Console pages for a property by clicks, impressions, CTR, and average position.
      x-source: https://calmseo.com/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostGscTopPagesRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /gsc/top-queries:
    post:
      operationId: post_gsc_top_queries
      tags:
      - Gsc
      summary: Top Queries Get top Search Console queries for a property by clicks, impressions, CTR, and average position.
      x-source: https://calmseo.com/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostGscTopQueriesRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /gsc/url-inspection:
    post:
      operationId: post_gsc_url_inspection
      tags:
      - Gsc
      summary: URL Inspection Check whether Google has indexed up to 25 URLs per call, with counts by coverage state and a row per URL.
      x-source: https://calmseo.com/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostGscUrlInspectionRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /health:
    get:
      operationId: get_health
      tags:
      - Health
      summary: Check whether the CalmSEO API service is reachable.
      x-source: https://calmseo.com/docs/api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /keywords/ideas:
    post:
      operationId: post_keywords_ideas
      tags:
      - Keywords
      summary: Keyword Ideas Expand seed keywords into a DataForSEO Labs keyword research set.
      x-source: https://calmseo.com/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostKeywordsIdeasRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /keywords/search-volume:
    post:
      operationId: post_keywords_search_volume
      tags:
      - Keywords
      summary: Keyword Search Volume Get Google Ads search volume, CPC, and competition for a batch of keywords.
      x-source: https://calmseo.com/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostKeywordsSearchVolumeRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /mcp:
    get:
      operationId: get_mcp
      tags:
      - Mcp
      summary: GET /mcp
      x-source: https://calmseo.com/google-search-console-mcp
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: httpie
        snippet: http https://mcp.calmseo.com/mcp . Full steps and screenshots are in the Claude setup guide , and there is a dedicated walkthrough
          for connecting Google Search Console to Claude . ChatGPT How do I connect it to ChatGPT? ChatGPT adds remote MCP servers through developer
          mode, not through the Custom G
  /rankings/keywords:
    post:
      operationId: post_rankings_keywords
      tags:
      - Rankings
      summary: Ranked Keywords Find keywords a domain, subdomain, or page URL ranks for in Google.
      x-source: https://calmseo.com/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRankingsKeywordsRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /serp/search:
    post:
      operationId: post_serp_search
      tags:
      - Serp
      summary: SERP Search Run a live Google or Bing organic SERP search for a keyword, location, language, device, and depth.
      x-source: https://calmseo.com/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostSerpSearchRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostSerpSearchResponse'
      x-evidence:
        kind: documentation
  /tools:
    get:
      operationId: get_tools
      tags:
      - Tools
      summary: 'Route discovery : call GET /tools to list the current API surface.'
      x-source: https://calmseo.com/api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
components:
  schemas:
    PostApiV1SerpSearchRequest:
      type: object
      properties:
        keyword:
          type: string
        location_name:
          type: string
        language_name:
          type: string
        depth:
          type: integer
    PostAuditsPageRequest:
      type: object
      properties:
        url:
          type: string
      required:
      - url
    PostGscPageQueriesRequest:
      type: object
      properties:
        site_url:
          type: string
        page_url:
          type: string
        start_date:
          type: string
        end_date:
          type: string
        row_limit:
          type: string
        type:
          type: string
      required:
      - site_url
      - page_url
      - start_date
      - end_date
    PostGscSearchAnalyticsRequest:
      type: object
      properties:
        site_url:
          type: string
        start_date:
          type: string
        end_date:
          type: string
        dimensions:
          type: string
        type:
          type: string
        row_limit:
          type: string
      required:
      - site_url
      - start_date
      - end_date
    PostGscTopPagesRequest:
      type: object
      properties:
        site_url:
          type: string
        start_date:
          type: string
        end_date:
          type: string
        row_limit:
          type: string
        type:
          type: string
      required:
      - site_url
      - start_date
      - end_date
    PostGscTopQueriesRequest:
      type: object
      properties:
        site_url:
          type: string
        start_date:
          type: string
        end_date:
          type: string
        row_limit:
          type: string
        type:
          type: string
      required:
      - site_url
      - start_date
      - end_date
    PostGscUrlInspectionRequest:
      type: object
      properties:
        site_url:
          type: string
        urls:
          type: array
          description: Array of URLs to inspect
      required:
      - site_url
      - urls
    PostKeywordsIdeasRequest:
      type: object
      properties:
        keywords:
          type: string
        location_name:
          type: string
        language_name:
          type: string
        limit:
          type: string
      required:
      - keywords
      - location_name
      - language_name
    PostKeywordsSearchVolumeRequest:
      type: object
      properties:
        keywords:
          type: string
        location_name:
          type: string
        language_name:
          type: string
      required:
      - keywords
      - location_name
      - language_name
    PostRankingsKeywordsRequest:
      type: object
      properties:
        target:
          type: string
        location_name:
          type: string
        language_name:
          type: string
        limit:
          type: string
      required:
      - target
      - location_name
      - language_name
    PostSerpSearchRequest:
      type: object
      properties:
        keyword:
          type: string
        location_name:
          type: string
        language_name:
          type: string
        search_engine:
          type: string
        device:
          type: string
        depth:
          type: string
      required:
      - keyword
      - location_name
      - language_name
      - depth
    PostSerpSearchResponse:
      type: object
      properties:
        ok:
          type: boolean
        tool:
          type: string
        data:
          type: object
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
security:
- bearer: []
tags:
- name: Api
- name: Audits
- name: Gsc
- name: Health
- name: Keywords
- name: Mcp
- name: Rankings
- name: Serp
- name: Tools