Skip to main content
Glama

AIsa On-Page Audit

OnPage API Microdata

post_dataforseo_on_page_microdata
Destructive

‌‌ This endpoint is designed to validate structured JSON-LD data and Microdata. Using this function you will obtain microdata available on the specified page of the target website and detailed results of its validation. To use this endpoint, set the validate_micromarkup parameter to true in the POST request to OnPage API.

Usage-based billing; Default request estimate: $0.012 USD (not a fixed price). Account-specific pricing and final settlement may differ.

Input Schema

NameRequiredDescriptionDefault
bodyNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / body / items / oneOf
      Previous value: -[
      -  {
      -    "example": [
      -      {
      -        "id": "02241700-1535-0216-0000-034137259bc1",
      -        "url": "https://dataforseo.com/apis"
      -      }
      -    ],
      -    "properties": {
      -      "id": {
      -        "description": "<em>ID of the task</em><br><strong>required field</strong><br>you can get this ID in the response of the <a href=\"/v3/on_page/task_post/\">Task POST</a> endpoint<br>example:<br><code>\"07131248-1535-0216-1000-17384017ad04\"</code>",
      -        "type": "string"
      -      },
      -      "tag": {
      -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "url": {
      -        "description": "<em>resource URL</em><br><strong>required field</strong><br>you can get this URL in the response of the <a href=\"/v3/on_page/pages/\">Pages</a> endpoint<br>example:<br><code>https://dataforseo.com/apis</code>",
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "id": {
      +        "description": "<em>ID of the task</em><br><strong>required field</strong><br>you can get this ID in the response of the <a href=\"/v3/on_page/task_post/\">Task POST</a> endpoint<br>example:<br><code>\"07131248-1535-0216-1000-17384017ad04\"</code>",
      +        "type": "string"
      +      },
      +      "tag": {
      +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "url": {
      +        "description": "<em>resource URL</em><br><strong>required field</strong><br>you can get this URL in the response of the <a href=\"/v3/on_page/pages/\">Pages</a> endpoint<br>example:<br><code>https://dataforseo.com/apis</code>",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
  2. Changed2 schema fields changed
    • removedInput schema / properties / body / items / anyOf
      Removed value: -[
      -  {
      -    "example": [
      -      {
      -        "id": "02241700-1535-0216-0000-034137259bc1",
      -        "url": "https://dataforseo.com/apis"
      -      }
      -    ],
      -    "properties": {
      -      "id": {
      -        "description": "<em>ID of the task</em><br><strong>required field</strong><br>you can get this ID in the response of the <a href=\"/v3/on_page/task_post/\">Task POST</a> endpoint<br>example:<br><code>\"07131248-1535-0216-1000-17384017ad04\"</code>",
      -        "type": "string"
      -      },
      -      "tag": {
      -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "url": {
      -        "description": "<em>resource URL</em><br><strong>required field</strong><br>you can get this URL in the response of the <a href=\"/v3/on_page/pages/\">Pages</a> endpoint<br>example:<br><code>https://dataforseo.com/apis</code>",
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  }
      -]
    • addedInput schema / properties / body / items / oneOf
      Added value: +[
      +  {
      +    "example": [
      +      {
      +        "id": "02241700-1535-0216-0000-034137259bc1",
      +        "url": "https://dataforseo.com/apis"
      +      }
      +    ],
      +    "properties": {
      +      "id": {
      +        "description": "<em>ID of the task</em><br><strong>required field</strong><br>you can get this ID in the response of the <a href=\"/v3/on_page/task_post/\">Task POST</a> endpoint<br>example:<br><code>\"07131248-1535-0216-1000-17384017ad04\"</code>",
      +        "type": "string"
      +      },
      +      "tag": {
      +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "url": {
      +        "description": "<em>resource URL</em><br><strong>required field</strong><br>you can get this URL in the response of the <a href=\"/v3/on_page/pages/\">Pages</a> endpoint<br>example:<br><code>https://dataforseo.com/apis</code>",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
  3. Changed7 schema fields changed
    • addedInput schema / properties / body / example
      Added value: +[
      +  {
      +    "id": "02241700-1535-0216-0000-034137259bc1",
      +    "url": "https://dataforseo.com/apis"
      +  }
      +]
    • addedInput schema / properties / body / items / anyOf
      Added value: +[
      +  {
      +    "example": [
      +      {
      +        "id": "02241700-1535-0216-0000-034137259bc1",
      +        "url": "https://dataforseo.com/apis"
      +      }
      +    ],
      +    "properties": {
      +      "id": {
      +        "description": "<em>ID of the task</em><br><strong>required field</strong><br>you can get this ID in the response of the <a href=\"/v3/on_page/task_post/\">Task POST</a> endpoint<br>example:<br><code>\"07131248-1535-0216-1000-17384017ad04\"</code>",
      +        "type": "string"
      +      },
      +      "tag": {
      +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "url": {
      +        "description": "<em>resource URL</em><br><strong>required field</strong><br>you can get this URL in the response of the <a href=\"/v3/on_page/pages/\">Pages</a> endpoint<br>example:<br><code>https://dataforseo.com/apis</code>",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / body / items / properties
      Removed value: -{
      -  "id": {
      -    "description": "ID of the task required field you can get this ID in the response of the Task POST endpoint example: \"07131248-1535-0216-1000-17384017ad04\"",
      -    "type": "string"
      -  },
      -  "tag": {
      -    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
      -    "type": "string"
      -  },
      -  "url": {
      -    "description": "resource URL required field you can get this URL in the response of the Pages endpoint example: https://dataforseo.com/apis",
      -    "type": "string"
      -  }
      -}
    • removedInput schema / properties / body / items / required
      Removed value: -[
      -  "id",
      -  "url"
      -]
    • changedInput schema / properties / body / items / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedInput schema / required
      Previous value: -[
      -  "body"
      -]New value: +[]
    • addedOutput schema / x-fastmcp-wrap-result
      Added value: +true
  4. Changed7 schema fields changed
    • removedInput schema / properties / body / example
      Removed value: -[
      -  {
      -    "id": "02241700-1535-0216-0000-034137259bc1",
      -    "url": "https://dataforseo.com/apis"
      -  }
      -]
    • removedInput schema / properties / body / items / anyOf
      Removed value: -[
      -  {
      -    "example": [
      -      {
      -        "id": "02241700-1535-0216-0000-034137259bc1",
      -        "url": "https://dataforseo.com/apis"
      -      }
      -    ],
      -    "properties": {
      -      "id": {
      -        "description": "<em>ID of the task</em><br><strong>required field</strong><br>you can get this ID in the response of the <a href=\"/v3/on_page/task_post/\">Task POST</a> endpoint<br>example:<br><code>\"07131248-1535-0216-1000-17384017ad04\"</code>",
      -        "type": "string"
      -      },
      -      "tag": {
      -        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "url": {
      -        "description": "<em>resource URL</em><br><strong>required field</strong><br>you can get this URL in the response of the <a href=\"/v3/on_page/pages/\">Pages</a> endpoint<br>example:<br><code>https://dataforseo.com/apis</code>",
      -        "type": "string"
      -      }
      -    },
      -    "type": "object"
      -  }
      -]
    • addedInput schema / properties / body / items / properties
      Added value: +{
      +  "id": {
      +    "description": "ID of the task required field you can get this ID in the response of the Task POST endpoint example: \"07131248-1535-0216-1000-17384017ad04\"",
      +    "type": "string"
      +  },
      +  "tag": {
      +    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
      +    "type": "string"
      +  },
      +  "url": {
      +    "description": "resource URL required field you can get this URL in the response of the Pages endpoint example: https://dataforseo.com/apis",
      +    "type": "string"
      +  }
      +}
    • addedInput schema / properties / body / items / required
      Added value: +[
      +  "id",
      +  "url"
      +]
    • changedInput schema / properties / body / items / type
      Previous value: -[
      -  "object",
      -  "null"
      -]New value: +"object"
    • changedInput schema / required
      Previous value: -[]New value: +[
      +  "body"
      +]
    • removedOutput schema / x-fastmcp-wrap-result
      Removed value: -true
  5. Changed7 schema fields changed
    • addedInput schema / properties / body / example
      Added value: +[
      +  {
      +    "id": "02241700-1535-0216-0000-034137259bc1",
      +    "url": "https://dataforseo.com/apis"
      +  }
      +]
    • addedInput schema / properties / body / items / anyOf
      Added value: +[
      +  {
      +    "example": [
      +      {
      +        "id": "02241700-1535-0216-0000-034137259bc1",
      +        "url": "https://dataforseo.com/apis"
      +      }
      +    ],
      +    "properties": {
      +      "id": {
      +        "description": "<em>ID of the task</em><br><strong>required field</strong><br>you can get this ID in the response of the <a href=\"/v3/on_page/task_post/\">Task POST</a> endpoint<br>example:<br><code>\"07131248-1535-0216-1000-17384017ad04\"</code>",
      +        "type": "string"
      +      },
      +      "tag": {
      +        "description": "<em>user-defined task identifier</em><br>optional field<br><em>the character limit is 255</em><br>you can use this parameter to identify the task and match it with the result<br>you will find the specified <code>tag</code> value in the <code>data</code> object of the response",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "url": {
      +        "description": "<em>resource URL</em><br><strong>required field</strong><br>you can get this URL in the response of the <a href=\"/v3/on_page/pages/\">Pages</a> endpoint<br>example:<br><code>https://dataforseo.com/apis</code>",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
    • removedInput schema / properties / body / items / properties
      Removed value: -{
      -  "id": {
      -    "description": "ID of the task required field you can get this ID in the response of the Task POST endpoint example: \"07131248-1535-0216-1000-17384017ad04\"",
      -    "type": "string"
      -  },
      -  "tag": {
      -    "description": "user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response",
      -    "type": "string"
      -  },
      -  "url": {
      -    "description": "resource URL required field you can get this URL in the response of the Pages endpoint example: https://dataforseo.com/apis",
      -    "type": "string"
      -  }
      -}
    • removedInput schema / properties / body / items / required
      Removed value: -[
      -  "id",
      -  "url"
      -]
    • changedInput schema / properties / body / items / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedInput schema / required
      Previous value: -[
      -  "body"
      -]New value: +[]
    • addedOutput schema / x-fastmcp-wrap-result
      Added value: +true
  6. First observed

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true, readOnlyHint=false and non-idempotent, but the description frames the tool purely as a retrieval/validation call and never explains what is mutated, that a task must already exist, or what happens on repeat calls. The injected pricing note ($0.012 estimate) adds real cost context, but the destructive/state-changing profile is undisclosed. The read-flavored wording sits in mild tension with the destructive annotation, though not an outright contradiction since a POST task endpoint can plausibly mutate state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with the core purpose front-loaded, so it is reasonably sized. However, the third sentence is wasted and misleading (references a nonexistent parameter), and stray zero-width characters pad the opening.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, but for a billable, destructive-flagged POST endpoint with 0% parameter coverage the description should at minimum explain how to supply id/url. It instead describes a parameter the tool does not accept, leaving the agent unable to construct a valid call from the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Reported schema coverage is 0% and the description adds nothing about the single `body` array — no mention that `id` (from Task POST) and `url` (from Pages) are the required fields, no note that `tag` is an optional matcher. Worse, it points at a `validate_micromarkup` parameter that is absent from the schema, which actively misdirects the agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource pair: validate/obtain JSON-LD and Microdata for a page of a target site, which separates it from generic siblings like content_parsing or raw_html. It does not explicitly contrast with the other on_page POST tools, but the resource is concrete enough to select on.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage instruction is 'set the validate_micromarkup parameter to true in the POST request to OnPage API' — a parameter that does not exist anywhere in this tool's schema. There is no when-to-use / when-to-prefer-an-alternative guidance relative to siblings such as duplicate_tags or links, leaving selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources