JSON-LD Tag Extractor for Schema.org Audits
codemaster devops · @codemasterdevops
Extract JSON-LD structured data from a list of URLs. Export parsed Schema.org markup for technical SEO audits and data pipelines.

About
What does JSON-LD Tag Extractor do?
JSON-LD Tag Extractor reads Schema.org structured data from a list of web pages and saves the parsed JSON-LD blocks in a Bytewells dataset. Use it to audit structured data across page templates, compare published markup, or collect it for downstream analysis.
What website data can you extract?
urlis the requested page URL.datacontains the parsed JSON-LD block. Nested objects, arrays, and@graphremain intact.customDatacontains optional metadata you provide with the run, such as an audit label.
Each parsed block produces a row. A fetched page with no JSON-LD scripts produces an empty data object.
How to use JSON-LD Tag Extractor
- Add the page URLs you want to check to
startUrls. - Optionally supply
customDatato label the rows. Leave the proxy disabled for direct requests, or configure a proxy when needed. - Start the run and open the dataset. Export JSON or CSV, or retrieve the items through the Bytewells API. JSON preserves nested structured data.
Example input
{
"startUrls": [
{ "url": "https://en.wikipedia.org/wiki/JSON-LD" },
{ "url": "https://example.com/" }
],
"customData": { "batch": "schema-audit" }
}
Example dataset row
{
"url": "https://example.com/",
"data": {},
"customData": { "batch": "schema-audit" }
}
Coverage
The actor reads the HTML response and skips malformed JSON-LD with a log warning. It processes the supplied pages, with no browser rendering, link discovery, or rich-result eligibility checks. Some sites restrict automated requests. Check the run log for pages that failed after retries. If every page request fails, the run fails.
FAQ
- What does JSON-LD Tag Extractor collect?
- It collects parsed JSON-LD from script tags in the HTML returned by the URLs you submit.
- How do I submit multiple pages?
- Add each page to startUrls as a URL object. A page with multiple valid JSON-LD scripts can produce multiple rows.
- What does a dataset row contain?
- Each row contains the requested URL, the parsed JSON-LD block in data, and your optional customData object.
- How are arrays and @graph handled?
- Arrays and @graph remain in their original structure inside data. You can flatten or filter them after export.
- How can I tell that a page had no JSON-LD?
- A successfully fetched page without JSON-LD scripts writes a row with an empty data object and logs a warning.
- What happens to malformed JSON-LD?
- The actor skips invalid JSON and logs a warning. Valid blocks on the same page can still produce rows.
- Can it see JSON-LD injected by JavaScript?
- It reads the HTML response. JSON-LD that appears only after JavaScript runs in a browser is outside that coverage.
- Can I label results by audit or project?
- Yes. Put your audit or project label in customData. The actor copies that object to every saved row.
- Do I need a website API key or proxy?
- Public pages require no website API key. Direct requests are the default, and you can supply custom proxy URLs.
- How do I export the results?
- Export the run dataset as JSON or CSV, or fetch the items through the Bytewells API. JSON preserves the nesting in data.
- What happens when a page fails to load?
- The actor retries failed requests and logs any that still fail. It continues with other pages and fails the run if every request fails.
- What does the rental cover?
- The $19.99 monthly rental gives you access to the actor after a 3-day trial. Bytewells bills run compute separately.
Input
Preview of the input form. Rent the Actor to fill it in and start runs from the console.
Fields
startUrlsPage URLs or supported request list sources. The actor fetches these pages and extracts their JSON-LD scripts.
proxyConfigurationConnect directly by default. Optionally specify custom proxy URLs or use a configured platform proxy.
customDataAn optional object to include with every dataset row.
API
Bytewells speaks the Apify API. Existing integrations keep working: point apify-client at https://bytewells.com/api and use your Bytewells API token (Console → Settings → API access). The Actor ID is codemasterdevops/ld-json-tag-extractor (or codemasterdevops~ld-json-tag-extractor in URLs).
JavaScript · apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.BYTEWELLS_TOKEN,
baseUrl: 'https://bytewells.com/api',
});
const input = {
"startUrls": [
{
"url": "https://en.wikipedia.org/wiki/JSON-LD"
}
],
"proxyConfiguration": {
"useApifyProxy": false
},
"customData": {}
};
const run = await client.actor('codemasterdevops/ld-json-tag-extractor').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Python · apify-client
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["BYTEWELLS_TOKEN"], api_url="https://bytewells.com/api")
run_input = {
"startUrls": [
{
"url": "https://en.wikipedia.org/wiki/JSON-LD"
}
],
"proxyConfiguration": {
"useApifyProxy": False
},
"customData": {}
}
run = client.actor("codemasterdevops/ld-json-tag-extractor").call(run_input=run_input)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)HTTP · curl
curl -X POST "https://bytewells.com/api/v2/acts/codemasterdevops~ld-json-tag-extractor/runs" \
-H "Authorization: Bearer $BYTEWELLS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":[{"url":"https://en.wikipedia.org/wiki/JSON-LD"}],"proxyConfiguration":{"useApifyProxy":false},"customData":{}}'Runs are billed as compute from your credit balance. Paid Actors need an active rental or trial; otherwise the API answers 402 rental-required.
Related
More Actors from the same publisher.

Website Metadata Extractor
codemaster devops · @codemasterdevops
Extract page titles, meta descriptions, Open Graph tags, X Card tags, and canonical links from public URLs for SEO and social preview audits.
SEO toolsDeveloper toolsAutomation$19.99/mo3-day free trial
Best Buy Products Scraper
codemaster devops · @codemasterdevops
Extract Best Buy product names, SKUs, available prices, images, and US reviews for catalog research and price tracking.
E-commerceAutomationDeveloper tools$19.99/mo3-day free trial
Bing Scraper - Search Results & SERP Data
codemaster devops · @codemasterdevops
Scrape Bing search results, titles, links, and snippets. Run multiple queries with market, language, and page controls for SEO and competitor research.
SEO toolsMarketingDeveloper toolsUsage-based
Google Play Reviews Scraper - App Ratings & Feedback
codemaster devops · @codemasterdevops
Extract public Google Play app reviews, ratings, dates, helpful votes, and available developer replies for app research and competitor analysis.
MarketingSEO toolsDeveloper tools$19.99/mo3-day free trial
Google Trending Now Scraper – Trending Searches by Country
codemaster devops · @codemasterdevops
Get current Google trending searches, approximate search traffic, and news links. Monitor up to 10 countries per run without a Google API key.
SEO toolsMarketingAutomationUsage-based
HTML String to PDF - A4 Document Converter
codemaster devops · @codemasterdevops
Convert an HTML string into a downloadable A4 PDF with page numbers for reports, invoices, and other templated documents.
Developer toolsAutomation$19.99/mo3-day free trial