Yoast Schema Aggregator API

The Yoast Schema Aggregator exposes a site's aggregated Schema.org structured data over the WordPress REST API as paginated JSON-L, plus an XML schemamap listing every available schema endpoint on the site — the structured-data equivalent of an XML sitemap, aimed at search engines and AI crawlers that want a site's entity graph in one place.

OpenAPI Specification

yoast-schema-aggregator-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Yoast Schema Aggregator API
  description: >-
    The Yoast Schema Aggregator exposes a site's aggregated Schema.org structured data
    over the WordPress REST API. It returns paginated JSON-L bundles of the schema for
    a given post type, plus an XML "schemamap" listing every available schema endpoint
    on the site — the structured-data equivalent of an XML sitemap, intended for search
    engines and AI crawlers that want a site's entity graph in one place.
  version: '1.0'
  contact:
    name: Yoast Developer Portal
    url: https://developer.yoast.com/features/schema/schema-aggregator/api-reference/
  license:
    name: GPL-3.0
    url: https://www.gnu.org/licenses/gpl-3.0.html
  x-api-evangelist-provenance:
    method: derived
    source: https://developer.yoast.com/features/schema/schema-aggregator/api-reference/
    note: >-
      Route shapes (/wp-json/yoast/v1/schema-aggregator/get-schema/{post_type}[/{page}]
      and /wp-json/yoast/v1/schema-aggregator/get-xml), the JSON-L response format and
      the pagination behaviour are quoted from Yoast's own API reference. Response
      schemas are described only to the level Yoast publishes them.
    fetched: '2026-08-13'
servers:
  - url: https://{site}/wp-json
    description: >-
      The customer's own WordPress installation. Yoast ships plugin code, not a hosted
      gateway, so the host is the WordPress site running Yoast SEO.
    variables:
      site:
        default: example.com
        description: Your WordPress site domain
tags:
  - name: Schema Aggregator
    description: Aggregated Schema.org output for a WordPress site
paths:
  /yoast/v1/schema-aggregator/get-schema/{post_type}:
    get:
      operationId: getAggregatedSchema
      summary: Get aggregated schema for a post type
      description: >-
        Returns the aggregated Schema.org data for every item of the given post type,
        in JSON-L format. Results are paginated; page size is filterable on the site
        via the wpseo_schema_aggregator_per_page filter.
      tags:
        - Schema Aggregator
      parameters:
        - $ref: '#/components/parameters/PostType'
      responses:
        '200':
          description: Aggregated Schema.org data in JSON-L
          content:
            application/jsonl:
              schema:
                type: string
                description: Newline-delimited JSON, one Schema.org graph per line
        '404':
          description: No schema available for the requested post type
  /yoast/v1/schema-aggregator/get-schema/{post_type}/{page}:
    get:
      operationId: getAggregatedSchemaPage
      summary: Get one page of aggregated schema for a post type
      description: >-
        Returns a single page of the aggregated Schema.org data for the given post
        type, in JSON-L format.
      tags:
        - Schema Aggregator
      parameters:
        - $ref: '#/components/parameters/PostType'
        - name: page
          in: path
          required: true
          description: 1-based page number
          schema:
            type: integer
            minimum: 1
      responses:
        '200':
          description: One page of aggregated Schema.org data in JSON-L
          content:
            application/jsonl:
              schema:
                type: string
                description: Newline-delimited JSON, one Schema.org graph per line
        '404':
          description: No such page for the requested post type
  /yoast/v1/schema-aggregator/get-xml:
    get:
      operationId: getSchemaMap
      summary: Get the XML schemamap
      description: >-
        Returns an XML schemamap listing all available schema endpoints on the site, so
        a crawler can discover every aggregated-schema page without guessing post types
        or page numbers.
      tags:
        - Schema Aggregator
      responses:
        '200':
          description: XML schemamap of every available aggregated-schema endpoint
          content:
            application/xml:
              schema:
                type: string
components:
  parameters:
    PostType:
      name: post_type
      in: path
      required: true
      description: The WordPress post type to aggregate schema for (e.g. post, page, product)
      schema:
        type: string
        example: post