{
  "openapi": "3.0.1",
  "info": {
    "title": "WordPress Content Exporter - posts & pages to JSON/Markdown",
    "description": "Export posts, pages, custom post types, categories, tags, authors and media metadata from any public WordPress site via the REST API. Clean HTML, Markdown and plain text per post, incremental sync since last run, sitemap/RSS fallback when the API is disabled.",
    "version": "1.0",
    "x-build-id": "gDhHYOpY2c3CAVgPq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/beguiling_equator~wordpress-content-export/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-beguiling_equator-wordpress-content-export",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/beguiling_equator~wordpress-content-export/runs": {
      "post": {
        "operationId": "runs-sync-beguiling_equator-wordpress-content-export",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/beguiling_equator~wordpress-content-export/run-sync": {
      "post": {
        "operationId": "run-sync-beguiling_equator-wordpress-content-export",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "WordPress site URLs",
            "minItems": 1,
            "type": "array",
            "description": "One entry per site: the homepage (https://example.com), a blog in a sub-directory (https://wordpress.org/news) or any page of the site. The REST API root is discovered automatically (link rel=\"https://api.w.org/\", /wp-json/ or /?rest_route=/).",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "postTypes": {
            "title": "Post types",
            "type": "array",
            "description": "WordPress post types to export: post, page, or any custom type exposed by the REST API (product, portfolio, docs ...). Use \"all\" to export every public content type the site reports under /wp/v2/types.",
            "default": [
              "post",
              "page"
            ],
            "items": {
              "type": "string"
            }
          },
          "maxItemsPerSite": {
            "title": "Max items per site",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many posts/pages per site (0 = everything). Newest first. Also caps media items when media export is on.",
            "default": 0
          },
          "search": {
            "title": "Search phrase (optional)",
            "type": "string",
            "description": "Passed to the REST API `search` parameter: only posts/pages matching the phrase are exported. REST mode only."
          },
          "modifiedAfter": {
            "title": "Modified after",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}",
            "type": "string",
            "description": "Only export content modified after this moment (ISO date or datetime, UTC). Example: 2026-01-01 or 2026-01-01T12:00:00Z."
          },
          "sinceLastRun": {
            "title": "Only content changed since the last run",
            "type": "boolean",
            "description": "Remembers the newest modification time per site in the named key-value store below and exports only newer content on the next run (combined with Modified after when both are set). The first run exports everything.",
            "default": false
          },
          "stateStoreName": {
            "title": "State store name",
            "type": "string",
            "description": "Name of the key-value store that keeps the per-site sync cursor. Use different names for independent sync jobs.",
            "default": "wordpress-content-export-state"
          },
          "includeContentHtml": {
            "title": "Include content as HTML",
            "type": "boolean",
            "description": "Cleaned HTML of the post body (scripts, styles and forms removed; relative links made absolute).",
            "default": true
          },
          "includeContentMarkdown": {
            "title": "Include content as Markdown",
            "type": "boolean",
            "description": "Markdown conversion of the post body (headings, lists, links, images, tables, code) - ready for LLMs, RAG pipelines and static-site migrations.",
            "default": true
          },
          "includeContentText": {
            "title": "Include content as plain text",
            "type": "boolean",
            "description": "Plain text of the post body; wordCount and readingTimeMinutes are always computed.",
            "default": true
          },
          "includeRaw": {
            "title": "Include raw REST fields",
            "type": "boolean",
            "description": "Attach the untouched WordPress REST object (including `_embedded` and Yoast SEO data when present) under `raw`. Makes items several times bigger.",
            "default": false
          },
          "includeTaxonomies": {
            "title": "Export categories and tags",
            "type": "boolean",
            "description": "Also write one dataset item per category and per tag (type = category / tag). REST mode only; free of charge.",
            "default": false
          },
          "includeAuthors": {
            "title": "Export authors",
            "type": "boolean",
            "description": "Also write one dataset item per author with public posts (type = author; name, slug, description, avatar - never e-mail). REST mode only; some sites hide the users endpoint.",
            "default": false
          },
          "includeMedia": {
            "title": "Export media metadata",
            "type": "boolean",
            "description": "Also write one dataset item per media-library entry (type = media; URL, alt text, caption, dimensions, mime type). Files are not downloaded. REST mode only; capped by Max items per site.",
            "default": false
          },
          "postStatus": {
            "title": "Post status",
            "type": "string",
            "description": "Status filter sent to the REST API. Without authentication WordPress only returns `publish`; other values are passed through and fall back to published content with a warning.",
            "default": "publish"
          },
          "mode": {
            "title": "Data source",
            "enum": [
              "auto",
              "rest",
              "html"
            ],
            "type": "string",
            "description": "auto: REST API first, sitemap/RSS/HTML fallback when it is disabled or blocked. rest: REST API only (site is skipped if unavailable). html: force the sitemap/RSS/HTML path (useful when the REST API returns partial content).",
            "default": "auto"
          },
          "maxSitesInParallel": {
            "title": "Sites processed in parallel",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many sites are exported at the same time (1-10). Per-host politeness limits always apply.",
            "default": 3
          },
          "maxConcurrencyPerHost": {
            "title": "Max concurrent requests per host",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "Parallel requests to a single site (1-4).",
            "default": 2
          },
          "requestsPerSecondPerHost": {
            "title": "Requests per second per host",
            "minimum": 1,
            "maximum": 2,
            "type": "integer",
            "description": "Hard-capped at 2. The Actor also honours Retry-After, backs off exponentially on 429/5xx and obeys robots.txt.",
            "default": 2
          },
          "maxRetries": {
            "title": "Max retries",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Retries for 429/5xx/network errors with exponential backoff (0-5).",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. Route requests through Apify Proxy (or your own proxies) when a site's CDN blocks datacenter IPs with 403. Not needed for most WordPress sites."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}