Pricing
| Apify plan | Per result | Per 1,000 |
|---|---|---|
| Free plan | $0.002 | $2 |
| Starter | $0.0016 | $1.60 |
| Scale | $0.0014 | $1.40 |
| Business | $0.0012 | $1.20 |
| Enterprise | $0.0012 | $1.20 |
| Enterprise+ | $0.0012 | $1.20 |
Primary event rates from a catalog snapshot; this is not the total price of a run. Additional charge events and Actor Start fees may apply; start fees can scale with memory. Check the Actor's Pricing tab on Apify for all events, conditions and current plan-specific rates, and set a maximum run budget before starting.
Sample output
{
"url": "https://apify.com/",
"finalUrl": "https://apify.com/",
"statusCode": 200,
"responseTimeMs": 134,
"htmlSizeBytes": 492244,
"title": "Apify: Marketplace of ready-to-run tools for AI",
"titleLength": 47,
"metaDescription": "Thousands of tools to automate your business. Get real-time web data, track competitors, generate leads, and integrate your apps and AI agents.",
"metaDescriptionLength": 143,
"canonical": "https://apify.com/",
"canonicalMatches": true,
"robotsMeta": "index,follow",
"isIndexable": true,
"lang": "en",
"viewportMeta": "width=device-width, initial-scale=1",
"charset": "utf-8",
"h1Count": 1,
"h1": [
"80,266 tools for your AI"
],
"h2Count": 11,
"h3Count": 20,
"headingsOutline": [
{
"level": 1,
"text": "80,266 tools for your AI"
},
{
"level": 2,
"text": "Popular Actors"
},
{
"level": 3,
"text": "TikTok Scraper"
}
],
"wordCount": 1174,
"textToHtmlRatio": 0.02,
"imageCount": 78,
"imagesMissingAlt": 0,
"imagesMissingAltSample": [],
"internalLinkCount": 78,
"externalLinkCount": 58,
"nofollowLinkCount": 20,
"brokenLinks": [],
"hreflang": [],
"openGraphComplete": true,
"twitterCardPresent": true,
"schemaTypes": [
"Organization",
"WebSite",
"SoftwareApplication"
],
"hasFavicon": true,
"inlineScriptCount": 5,
"externalScriptCount": 46,
"cssCount": 4,
"hasAmp": false,
"mixedContentCount": 0,
"issues": [],
"seoScore": 100,
"seoGrade": "A",
"error": null,
"scrapedAt": "2026-10-03T15:21:13.215Z"
}Call from code
Use the existing catalog input below as a starting point. Review the tool's input form on Apify before running it.
import json
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("webdatatools/seo-page-audit").call(run_input=json.loads("{\n \"urls\": [\n \"https://apify.com\",\n \"https://example.com\"\n ],\n \"checkLinks\": false,\n \"maxConcurrency\": 5\n}"))
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('webdatatools/seo-page-audit').call({
"urls": [
"https://apify.com",
"https://example.com"
],
"checkLinks": false,
"maxConcurrency": 5
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);curl -X POST "https://api.apify.com/v2/acts/webdatatools~seo-page-audit/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"urls":["https://apify.com","https://example.com"],"checkLinks":false,"maxConcurrency":5}'