Moz · Schema

Moz Api

SEOSearchMarketingAnalyticsKeywordsBacklinksLocal MarketingDomain AuthorityLink IndexJSON-RPCMCPCompany
View JSON Schema on GitHub

JSON Schema

moz-api-schema.json Raw ↑
{
  "all_actions": [
    "AsyncCallLookupAction",
    "BetaDataSiteMetricsBrandAuthorityFetchAction",
    "DataGlobalTopDomainListAction",
    "DataGlobalTopPageListAction",
    "DataKeywordMetricsDifficultyFetchAction",
    "DataKeywordMetricsFetchAction",
    "DataKeywordMetricsOpportunityFetchAction",
    "DataKeywordMetricsPriorityFetchAction",
    "DataKeywordMetricsVolumeFetchAction",
    "DataKeywordSearchIntentFetchAction",
    "DataKeywordSuggestionsListAction",
    "DataPingAsyncAction",
    "DataPingAction",
    "DataSiteAnchorTextListAction",
    "DataSiteLinkFilterAnchorTextAction",
    "DataSiteLinkFilterDomainAction",
    "DataSiteLinkIntersectFetchAction",
    "DataSiteLinkListAction",
    "DataSiteLinkStatusFetchMultipleAction",
    "DataSiteLinkStatusFetchAction",
    "DataSiteLinkingDomainFilterRecentlyGainedAction",
    "DataSiteLinkingDomainFilterRecentlyLostAction",
    "DataSiteLinkingDomainListAction",
    "DataSiteMetricsBrandAuthorityFetchAction",
    "DataSiteMetricsDistributionsFetchAction",
    "DataSiteMetricsFetchMultipleAction",
    "DataSiteMetricsFetchAction",
    "DataSiteMetricsHistoriesFetchAction",
    "DataSiteRankingKeywordCountAction",
    "DataSiteRankingKeywordListAction",
    "DataSiteRedirectFetchAction",
    "DataSiteTopPageListAction",
    "DataTestQuotaAsyncAction",
    "DataTestQuotaAction",
    "MozbarPageDetailFetchAction",
    "MozbarPageKeywordReportFetchAction",
    "MozbarPageOverviewFetchMultipleAction",
    "MozbarPageRankingKeywordListAction",
    "QuotaLookupAction",
    "QuotaUsageReportAction",
    "QuotaUsageTotalAction",
    "MetadataIndexFetchAction",
    "LocalAccountCreateAction",
    "LocalAccountListAction",
    "LocalAccountLookupAction",
    "LocalGroupCreateAction",
    "LocalGroupFilterAccountAction",
    "LocalGroupListAction",
    "LocalGroupLocationAddAction",
    "LocalGroupLocationListAction",
    "LocalGroupLocationRemoveAction",
    "LocalGroupLookupAction",
    "LocalLocationCancelAction",
    "LocalLocationCategoryListAction",
    "LocalLocationCloseAction",
    "LocalLocationCreateAction",
    "LocalLocationFilterAccountAction",
    "LocalLocationFilterStatusAction",
    "LocalLocationInsightGbpImpressionHistoryFetchAction",
    "LocalLocationInsightGbpImpressionTotalFetchAction",
    "LocalLocationInsightGbpLeadHistoryFetchAction",
    "LocalLocationLevelListAction",
    "LocalLocationLevelUpdateAction",
    "LocalLocationListAction",
    "LocalLocationListingListAction",
    "LocalLocationLocalGridHistoryFetchAction",
    "LocalLocationLocalGridKeywordListAction",
    "LocalLocationLookupAction",
    "LocalLocationNetworkFieldIssueListAction",
    "LocalLocationNetworkFieldStatusListAction",
    "LocalLocationNetworkListAction",
    "LocalLocationNetworkStatusListAction",
    "LocalLocationRankingHistoryFetchAction",
    "LocalLocationUpdateAction"
  ],
  "public_actions": [
    "DataGlobalTopDomainListAction",
    "DataGlobalTopPageListAction",
    "DataKeywordMetricsDifficultyFetchAction",
    "DataKeywordMetricsFetchAction",
    "DataKeywordMetricsOpportunityFetchAction",
    "DataKeywordMetricsPriorityFetchAction",
    "DataKeywordMetricsVolumeFetchAction",
    "DataKeywordSearchIntentFetchAction",
    "DataKeywordSuggestionsListAction",
    "DataSiteAnchorTextListAction",
    "DataSiteLinkFilterAnchorTextAction",
    "DataSiteLinkFilterDomainAction",
    "DataSiteLinkIntersectFetchAction",
    "DataSiteLinkListAction",
    "DataSiteLinkStatusFetchMultipleAction",
    "DataSiteLinkStatusFetchAction",
    "DataSiteLinkingDomainFilterRecentlyGainedAction",
    "DataSiteLinkingDomainFilterRecentlyLostAction",
    "DataSiteLinkingDomainListAction",
    "DataSiteMetricsBrandAuthorityFetchAction",
    "DataSiteMetricsDistributionsFetchAction",
    "DataSiteMetricsFetchMultipleAction",
    "DataSiteMetricsFetchAction",
    "DataSiteMetricsHistoriesFetchAction",
    "DataSiteRankingKeywordCountAction",
    "DataSiteRankingKeywordListAction",
    "DataSiteRedirectFetchAction",
    "DataSiteTopPageListAction",
    "QuotaLookupAction",
    "MetadataIndexFetchAction",
    "LocalAccountCreateAction",
    "LocalAccountListAction",
    "LocalAccountLookupAction",
    "LocalGroupCreateAction",
    "LocalGroupFilterAccountAction",
    "LocalGroupListAction",
    "LocalGroupLocationAddAction",
    "LocalGroupLocationListAction",
    "LocalGroupLocationRemoveAction",
    "LocalGroupLookupAction",
    "LocalLocationCancelAction",
    "LocalLocationCategoryListAction",
    "LocalLocationCloseAction",
    "LocalLocationCreateAction",
    "LocalLocationFilterAccountAction",
    "LocalLocationFilterStatusAction",
    "LocalLocationInsightGbpImpressionHistoryFetchAction",
    "LocalLocationInsightGbpImpressionTotalFetchAction",
    "LocalLocationInsightGbpLeadHistoryFetchAction",
    "LocalLocationLevelListAction",
    "LocalLocationLevelUpdateAction",
    "LocalLocationListAction",
    "LocalLocationListingListAction",
    "LocalLocationLocalGridHistoryFetchAction",
    "LocalLocationLocalGridKeywordListAction",
    "LocalLocationLookupAction",
    "LocalLocationNetworkFieldIssueListAction",
    "LocalLocationNetworkFieldStatusListAction",
    "LocalLocationNetworkListAction",
    "LocalLocationNetworkStatusListAction",
    "LocalLocationRankingHistoryFetchAction",
    "LocalLocationUpdateAction"
  ],
  "action_namespaces": {
    "data": {
      "_title": "Data",
      "global": "Global",
      "keyword": {
        "_title": "Keyword",
        "metrics": "Metrics"
      },
      "site": {
        "_title": "Site",
        "link": "Link",
        "linking-domain": "Linking Domain",
        "metrics": "Metrics"
      }
    },
    "mozbar": {
      "_title": "Mozbar"
    },
    "quota": "Quota",
    "metadata": "Metadata",
    "local": {
      "_title": "Local",
      "account": "Account",
      "group": {
        "_title": "Group",
        "location": "Location"
      },
      "location": {
        "_title": "Location",
        "filter": "Filter",
        "insight": "Google Insights",
        "local": {
          "_title": "Local Grid"
        },
        "network": {
          "_title": "Network"
        },
        "ranking": "Ranking"
      }
    },
    "async": "Async"
  },
  "definitions": {
    "AsyncCallLookupActionPayload": {
      "type": "object",
      "properties": {
        "auth": {
          "$ref": "#/definitions/ValidAuthPayload"
        },
        "data": {
          "$ref": "#/definitions/AsyncCallLookupActionData"
        }
      },
      "required": [
        "auth",
        "data"
      ],
      "additionalProperties": false
    },
    "ValidAuthPayload": {
      "anyOf": [
        {
          "$ref": "#/definitions/SessionIdAuthPayload"
        },
        {
          "$ref": "#/definitions/TokenIdAuthPayload"
        },
        {
          "$ref": "#/definitions/ApiKeyAuthPayload"
        }
      ],
      "description": "ValidAuth is the most basic authenticated request expectation, and allows all levels higher than itself, but can be created from either a session or api key"
    },
    "SessionIdAuthPayload": {
      "type": "object",
      "properties": {
        "session_id": {
          "type": "string",
          "description": "A session_id string to authenticate as a logged in user"
        }
      },
      "required": [
        "session_id"
      ],
      "additionalProperties": false,
      "description": "SessionIdAuth is simply a representation of a passed session_id parameter. This is meant to be used to make types (e.g. see other auths below), but can be used to restrict a type of auth for downstream services e.g. Extract<ValidAuth, SessionIdAuth> to only have session_id based auth accepted in the call"
    },
    "TokenIdAuthPayload": {
      "type": "object",
      "properties": {
        "token_id": {
          "type": "string",
          "description": "A token_id string to authenticate as a logged in user"
        }
      },
      "required": [
        "token_id"
      ],
      "additionalProperties": false,
      "description": "TokenIdAuth is simply a representation of a passed token_id parameter. This is meant to be used to make types (e.g. see other auths below), but can be used to restrict a type of auth for downstream services e.g. Extract<ValidAuth, TokenIdAuth> to only have token_id based auth accepted in the call"
    },
    "ApiKeyAuthPayload": {
      "type": "object",
      "properties": {
        "apikey_id": {
          "type": "string",
          "description": "An API key to use for authenticating a request"
        }
      },
      "required": [
        "apikey_id"
      ],
      "additionalProperties": false,
      "description": "ApiKeyAuth is simply a representation of a passed apikey_id parameter. This is meant to be used to make types (e.g. see other auths below), but can be used to restrict a type of auth for downstream services e.g. Extract<ValidAuth, ApiKeyAuth> to only have apikey_id based auth accepted in the call"
    },
    "AsyncCallLookupActionData": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/definitions/AsyncCallLookupActionDataId"
        }
      },
      "required": [
        "id"
      ],
      "additionalProperties": false,
      "examples": [
        {
          "id": "c3397e5a-ce31-42fb-8607-ed40487aea18"
        }
      ]
    },
    "AsyncCallLookupActionDataId": {
      "type": "string",
      "description": "The ID of the `async_call` to lookup."
    },
    "AsyncCallLookupActionResult": {
      "type": "object",
      "properties": {
        "async_call": {
          "$ref": "#/definitions/AsyncCallObject"
        }
      },
      "required": [
        "async_call"
      ],
      "additionalProperties": false,
      "examples": [
        {
          "async_call": {
            "id": "c3397e5a-ce31-42fb-8607-ed40487aea18",
            "action": "data.ping.async",
            "status": "pending",
            "ttl": 30,
            "result": null,
            "error": null
          }
        },
        {
          "async_call": {
            "id": "3d446f53-aaba-4bdb-9d47-b1d0754bfe90",
            "action": "data.ping.async",
            "status": "complete",
            "ttl": 10,
            "result": {
              "message": "Hello, world."
            },
            "error": null
          }
        },
        {
          "async_call": {
            "id": "18e5de71-af54-490d-8eb1-0596a4f68121",
            "action": "data.ping.async",
            "status": "complete",
            "ttl": 10,
            "result": null,
            "error": {
              "message": "An unexpected error occurred.",
              "code": -32602,
              "status": 500,
              "data": {
                "explanation": null,
                "issue": null,
                "key": null,
                "value": null
              }
            }
          }
        }
      ]
    },
    "AsyncCallObject": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/definitions/AsyncCallObjectId"
        },
        "action": {
          "$ref": "#/definitions/AsyncCallObjectActionName"
        },
        "status": {
          "$ref": "#/definitions/AsyncCallObjectStatus"
        },
        "ttl": {
          "$ref": "#/definitions/AsyncCallObjectTtl"
        },
        "result": {
          "anyOf": [
            {
              "$ref": "#/definitions/JsonrpcResponseResult"
            },
            {
              "type": "null"
            }
          ]
        },
        "error": {
          "anyOf": [
            {
              "$ref": "#/definitions/JsonrpcResponseError"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "id",
        "action",
        "status",
        "ttl",
        "result",
        "error"
      ],
      "additionalProperties": false,
      "description": "Represents an asynchronous request. The `result` and `error` properties will be null if the call is still in progress.  Once the status is `\"complete\"`, only one of `result` or `error` will be non-null depending on whether the request was successful."
    },
    "AsyncCallObjectId": {
      "type": "string",
      "description": "The ID of an async call. Use this to retrieve the call with `async.call.lookup`."
    },
    "AsyncCallObjectActionName": {
      "type": "string",
      "description": "The action being tracked by an async call."
    },
    "AsyncCallObjectStatus": {
      "type": "string",
      "enum": [
        "initializing",
        "pending",
        "processing",
        "complete"
      ],
      "description": "The status of an async call. Expect either a `result` or `error` to be present once this is `complete`."
    },
    "AsyncCallObjectTtl": {
      "type": "number",
      "description": "The time to live for the call (in seconds)."
    },
    "JsonrpcResponseResult": {
      "type": "object",
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "object"
          },
          {
            "type": "null"
          },
          {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        ]
      },
      "description": "The result of a successful JSON-RPC request."
    },
    "JsonrpcResponseError": {
      "type": "object",
      "properties": {
        "message": {
          "type": "string",
          "description": "The error message."
        },
        "code": {
          "type": "number",
          "description": "Unique code tied to the type of error."
        },
        "status": {
          "type": "number",
          "description": "The relevant HTTP status code for the type of error."
        },
        "data": {
          "$ref": "#/definitions/JsonrpcResponseErrorData"
        }
      },
      "required": [
        "message",
        "code",
        "status",
        "data"
      ],
      "additionalProperties": false,
      "description": "A JSON-RPC error response."
    },
    "JsonrpcResponseErrorData": {
      "type": "object",
      "properties": {
        "explanation": {
          "type": "string",
          "description": "A human-readable explanation of the error."
        },
        "issue": {
          "type": "string",
          "description": "A machine-readable string to represent why the error is being returned."
        },
        "key": {
          "type": "string",
          "description": "The path to the relevant input that caused the error."
        },
        "value": {
          "description": "The value of the relevant input that triggered the error.",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "description": "Additional data to help describe the error."
    },
    "AsyncCallLookupActionQuota": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "const": "free"
        }
      },
      "required": [
        "type"
      ],
      "description": "Does not require any quota."
    },
    "AsyncCallLookupAction": {
      "type": "object",
      "properties": {
        "payload": {
          "$ref": "#/definitions/AsyncCallLookupActionPayload"
        },
        "result": {
          "$ref": "#/definitions/AsyncCallLookupActionResult"
        },
        "quota": {
          "$ref": "#/definitions/AsyncCallLookupActionQuota"
        }
      },
      "required": [
        "payload",
        "result",
        "quota"
      ],
      "additionalProperties": false,
      "description": "Fetch an `async_call` by ID to retrieve the result or error.  If the call has not completed yet, both `result` and `error` will be null.  Once the `status` of the call is `complete`, only one of `result` or `error` will be non-null.\n\nUpon retrieving an `async_call` that has been completed, the TTL will be updated to 10 seconds.\n\nWhile every action has a different processing time (and the documentation for each will suggest a polling interval), it is recommended to not poll the status of a call more frequently than once every 5 seconds.",
      "default": "Fetch Async Call"
    },
    "BetaDataSiteMetricsBrandAuthorityFetchActionPayload": {
      "type": "object",
      "properties": {
        "auth": {
          "$ref": "#/definitions/ValidAuthPayload"
        },
        "data": {
          "$ref": "#/definitions/BetaDataSiteMetricsBrandAuthorityFetchActionData"
        },
        "guid": {
          "type": "string"
        }
      },
      "required": [
        "auth",
        "data",
        "guid"
      ],
      "additionalProperties": false
    },
    "BetaDataSiteMetricsBrandAuthorityFetchActionData": {
      "type": "object",
      "properties": {
        "target_query": {
          "type": "object",
          "properties": {
            "query": {
              "$ref": "#/definitions/DataTargetQueryInputQuery"
            },
            "scope": {
              "$ref": "#/definitions/BrandAuthorityDataTargetQueryInputScope"
            },
            "locale": {
              "$ref": "#/definitions/BrandAuthorityDataTargetQueryInputLocale"
            }
          },
          "required": [
            "locale",
            "query",
            "scope"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "target_query"
      ],
      "additionalProperties": false,
      "examples": [
        {
          "target_query": {
            "query": "https://moz.com",
            "scope": "domain",
            "locale": "en-US"
          }
        },
        {
          "target_query": {
            "query": "https://en.wikipedia.org/wiki/Fundamental_analysis",
            "scope": "domain",
            "locale": "en-US"
          }
        }
      ]
    },
    "DataTargetQueryInputQuery": {
      "type": "string",
      "description": "A URL to query for."
    },
    "BrandAuthorityDataTargetQueryInputScope": {
      "type": "string",
      "const": "domain",
      "description": "Brand Authority only supports the \"domain\" scope."
    },
    "BrandAuthorityDataTargetQueryInputLocale": {
      "type": "string",
      "const": "en-US",
      "description": "Brand Authority currently only supports the \"en-US\" locale."
    },
    "BetaDataSiteMetricsBrandAuthorityFetchActionResult": {
      "type": "object",
      "properties": {
        "metrics": {
          "type": "object",
          "properties": {
            "brand_authority_score": {
              "$ref": "#/definitions/BetaDataSiteMetricsBrandAuthorityFetchActionResultBrandAuthorityScore"
            }
          },
          "required": [
            "brand_authority_score"
          ],
          "additionalProperties": false
        },
        "target_query": {
          "$ref": "#/definitions/DataTargetQueryObject"
        }
      },
      "required": [
        "metrics",
        "target_query"
      ],
      "additionalProperties": false,
      "examples": [
        {
          "metrics": {
            "brand_authority_score": 57
          },
          "target_query": {
            "query": "https://moz.com",
            "scope": "domain",
            "locale": "en-US",
            "original_target_query": {
              "query": "https://moz.com/blog",
              "scope": "domain",
              "locale": "en-US"
            },
            "suggestion": null
          }
        }
      ]
    },
    "BetaDataSiteMetricsBrandAuthorityFetchActionResultBrandAuthorityScore": {
      "type": "number",
      "description": "The Brand Authority score - a value ranging from 1 (worst) to 100 (best)."
    },
    "DataTargetQueryObject": {
      "type": "object",
      "properties": {
        "query": {
          "$ref": "#/definitions/DataTargetQueryInputQuery"
        },
        "scope": {
          "$ref": "#/definitions/DataTargetQueryInputScopes"
        },
        "locale": {
          "$ref": "#/definitions/DataTargetQueryInputLocales"
        },
        "original_target_query": {
          "$ref": "#/definitions/DataTargetQueryObjectOriginalTargetQuery"
        },
        "suggestion": {
          "anyOf": [
            {
              "$ref": "#/definitions/TargetSuggestionObject"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "locale",
        "original_target_query",
        "query",
        "scope",
        "suggestion"
      ],
      "additionalProperties": false,
      "description": "Represents a parsed target query."
    },
    "DataTargetQueryInputScopes": {
      "type": "string",
      "enum": [
        "domain",
        "subdomain",
        "subfolder",
        "url"
      ],
      "description": "The scope to parse the query with.  Providing a less detailed scope than the provided URL will alter the input.  e.g. `moz.com/foo/bar` with a scope of `domain` will ultimately resolve to `moz.com`"
    },
    "DataTargetQueryInputLocales": {
      "type": "string",
      "enum": [
        "en-US",
        "en-GB",
        "en-CA",
        "en-AU"
      ],
      "description": "The locale to search in. Only a limited subset of locales are supported for target queries - see the acceptable values below."
    },
    "DataTargetQueryObjectOriginalTargetQuery": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "query": {
          "$ref": "#/definitions/DataTargetQueryInputQuery"
        },
        "scope": {
          "$ref": "#/definitions/DataTargetQueryInputScopes"
        },
        "locale": {
          "$ref": "#/definitions/DataTargetQueryInputLocales"
        }
      },
      "required": [
        "locale",
        "query",
        "scope"
      ],
      "description": "A TargetQuery provides a target URL along with several options to specify how the query is run. This is returned in the response in case the user-provided TargetQuery is modified during parsing for the data retrieval process."
    },
    "TargetSuggestionObject": {
      "type": "object",
      "properties": {
        "query": {
          "$ref": "#/definitions/TargetSuggestionObjectQuery"
        },
        "scope": {
          "$ref": "#/definitions/TargetSuggestionObjectScopes"
        },
        "locale": {
          "$ref": "#/definitions/TargetSuggestionObjectLocales"
        },
        "explanation": {
          "$ref": "#/definitions/TargetSuggestionObjectExplanation"
        },
        "issue": {
          "$ref": "#/definitions/TargetSuggestionObjectIssue"
        }
      },
      "required": [
        "query",
        "scope",
        "locale",
        "explanation",
        "issue"
      ],
      "additionalProperties": false,
      "description": "Represents a suggestion to the user for a target input in case it is determined that a better option may exist (e.g. due to redirects)."
    },
    "TargetSuggestionObjectQuery": {
      "type": "string",
      "description": "A suggested URL to query for."
    },
    "TargetSuggestionObjectScopes": {
      "type": "string",
      "enum": [
        "domain",
        "subdomain",
        "subfolder",
        "url"
      ],
      "description": "The scope to parse the query with.  Providing a less detailed scope than the provided URL will alter the input.  e.g. `moz.com/foo/bar` with a scope of `domain` will ultimately resolve to `moz.com`"
    },
    "TargetSuggestionObjectLocales": {
      "type": "string",
      "enum": [
        "en-US",
        "en-GB",
        "en-CA",
        "en-AU"
      ],
      "description": "The locale to search in."
    },
    "TargetSuggestionObjectExplanation": {
      "type": "string",
      "description": "A human readable explanation for why the suggestion is being made. e.g. \"The provided URL redirects to another page.\""
    },
    "TargetSuggestionObjectIssue": {
      "type": "string",
      "description": "A machine readable string to represent why the suggestion is being made. e.g. \"redirect\""
    },
    "BetaDataSiteMetricsBrandAuthorityFetchActionQuota": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "const": "per_call"
        },
        "path": {
          "type": "string",
          "const": "api.limits.beta.rows"
        },
        "per_call_multiplier": {
          "type": "number",
          "const": 1
        }
      },
      "required": [
        "path",
        "per_call_multiplier",
        "type"
      ],
      "additionalProperties": false,
      "description": "Uses one row per call."
    },
    "BetaDataSiteMetricsBrandAuthorityFetchAction": {
      "type": "object",
      "properties": {
        "payload": {
          "$ref": "#/definitions/BetaDataSiteMetricsBrandAuthorityFetchActionPayload"
        },
        "result": {
          "$ref": "#/definitions/BetaDataSiteMetricsBrandAuthorityFetchActionResult"
        },
        "quota": {
          "$ref": "#/definitions/BetaDataSiteMetricsBrandAuthorityFetchActionQuota"
        }
      },
      "required": [
        "payload",
        "result",
        "quota"
      ],
      "additionalProperties": false,
      "description": "This endpoint returns a Brand Authority\u2122 score for the provided target. Use this metric to understand the strength of your website\u2019s brand, benchmark against competitors, and more.",
      "default": "Fetch Brand Authority"
    },
    "DataGlobalTopDomainListActionPayload": {
      "type": "object",
      "properties": {
        "auth": {
          "$ref": "#/definitions/ValidAuthPayload"
        },
        "data": {
          "$ref": "#/definitions/DataGlobalTopDomainListActionData"
        },
        "guid": {
          "type": "string"
        }
      },
      "required": [
        "auth",
        "data",
        "guid"
      ],
      "additionalProperties": false
    },
    "DataGlobalTopDomainListActionData": {
      "type": "object",
      "properties": {
        "page": {
          "$ref": "#/definitions/DataPageInput"
        }
      },
      "required": [
        "page"
      ],
      "additionalProperties": false,
      "examples": [
        {},
        {
          "page": {
            "limit": 50,
            "n": 1
          }
        }
      ]
    },
    "DataPageInput": {
      "type": "object",
      "properties": {
        "n": {
          "$ref": "#/definitions/DataPageInputN"
        },
        "limit": {
          "$ref": "#/definitions/DataPageInputLimit"
        }
      },
      "additionalProperties": false,
      "description": "Control how much data is returned by providing a specific page number (n) and limit to the number of results in a given page."
    },
    "DataPageInputN": {
      "type": "number",
      "description": "The page number to load.",
      "default": 0
    },
    "DataPageInputLimit": {
      "type": "number",
      "description": "The number of results per page.",
      "default": 50
    },
    "DataGlobalTopDomainListActionResult": {
      "type": "object",
      "properties": {
        "page": {
          "$ref": "#/definitions/DataPageObject"
        },
        "top_domains": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/DataSiteMetricsObject"
          }
        }
      },
      "required": [
        "page",
        "top_domains"
      ],
      "additionalProperties": false,
      "examples": [
        {
          "page": {
            "limit": 1,
            "n": 0
          },
          "top_domains": [
            {
              "page": "www.blogger.com/",
              "subdomain": "www.blogger.com",
              "root_domain": "www.blogger.com",
              "title": "",
              "last_crawled": "2025-04-07",
              "http_code": 302,
              "pages_to_page": 1565869660,
              "nofollow_pages_to_page": 143563956,
              "redirect_pages_to_page": 19919,
              "external_pages_to_page": 1565869644,
              "external_nofollow_pages_to_page": 143563956,
              "external_redirect_pages_to_page": 19919,
              "deleted_pages_to_page": 59175346,
              "root_domains_to_page": 23761419,
              "indirect_root_domains_to_page": 254134,
              "deleted_root_domains_to_page": 286480,
              "nofollow_root_domains_to_page": 3532975,
              "pages_to_subdomain": 27664371074,
              "nofollow_pages_to_subdomain": 6521309262,
              "redirect_pages_to_subdomain": 1710576,
              "external_pages_to_subdomain": 27664071600,
              "external_nofollow_pages_to_subdomain": 6521309225,
              "external_redirect_pages_to_subdomain": 1651010,
              "deleted_pages_to_subdomain": 2948413789,
              "root_domains_to_subdomain": 31698558,
              "deleted_root_domains_to_subdomain": 370994,
              "nofollow_root_domains_to_subdomain": 595361,
              "pages_to_root_domain": 27664372095,
              "nofollow_pages_to_root_domain": 6521309275,
              "redirect_pages_to_root_domain": 1710582,
              "external_pages_to_root_domain": 27664072621,
              "external_indirect_pages_to_root_domain": 124960569,
              "external_nofollow_pages_to_root_domain": 6521309238,
              "external_redirect_pages_to_root_domain": 1651016,
              "deleted_pages_to_root_domain": 2948414431,
              "root_domains_to_root_domain": 31698567,
              "indirect_root_domains_to_root_domain": 59294,
              "deleted_root_domains_to_root_domain": 370995,
              "nofollow_root_domains_to_root_domain": 595361,
              "page_authority": 100,
              "domain_authority": 100,
              "link_propensity": 0.0001562269754,
              "spam_score": -1,
              "root_domains_from_page": 0,
              "nofollow_root_domains_from_page": 0,
              "pages_from_page": 0,
              "nofollow_pages_from_page": 0,
              "root_domains_from_root_domain": 7826,
              "nofollow_root_domains_from_root_domain": 4704,
              "pages_from_root_domain": 1627126,
              "nofollow_pages_from_root_domain": 4937,
              "pages_crawled_from_root_domain": 50093782
            }
          ]
        }
      ]
    },
    "DataPageObject": {
      "type": "object",
      "properties": {
        "n": {
          "$ref": "#/definitions/DataPageObjectN"
        },
        "limit": {
          "$ref": "#/definitions/DataPageObjectLimit"
        }
      },
      "additionalProperties": false,
      "description": "Control how much data is returned by providing a specific page number (n) and limit to the number of results in a given page."
    },
    "DataPageObjectN": {
      "type": "number",
      "description": "The page number to load.",
      "default": 0
    },
    "DataPageObjectLimit": {
      "type": "number",
      "description": "The number of results per page.",
      "default": 50
    },
    "DataSiteMetricsObject": {
      "type": "object",
      "properties": {
        "page": {
          "$ref": "#/definitions/Page"
        },
        "subdomain": {
          "$ref": "#/definitions/Subdomain"
        },
        "root_domain": {
          "$ref": "#/definitions/RootDomain"
        },
        "title": {
          "$ref": "#/definitions/Title"
        },
        "last_crawled": {
          "$ref": "#/definitions/LastCrawled"
        },
        "http_code": {
          "$ref": "#/definitions/HttpCode"
        },
        "pages_to_page": {
          "$ref": "#/definitions/PagesToPage"
        },
        "nofollow_pages_to_page": {
          "$ref": "#/definitions/NofollowPagesToPage"
        },
        "redirect_pages_to_page": {
          "$ref": "#/definitions/RedirectPagesToPage"
        },
        "external_pages_to_page": {
          "$ref": "#/definitions/ExternalPagesToPage"
        },
        "external_nofollow_pages_to_page": {
          "$ref": "#/definitions/ExternalNofollowPagesToPage"
        },
        "external_redirect_pages_to_page": {
          "$ref": "#/definitions/ExternalRedirectPagesToPage"
        },
        "deleted_pages_to_page": {
          "$ref": "#/definitions/DeletedPagesToPage"
        },
        "root_domains_to_page": {
          "$ref": "#/definitions/RootDomainsToPage"
        },
        "indirect_root_domains_to_page": {
          "$ref": "#/definitions/IndirectRootDomainsToPage"
        },
        "deleted_roo

# --- truncated at 32 KB (584 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/moz/refs/heads/main/json-schema/moz-api-schema.json

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/moz-api"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.