A content audit rarely needs every byte of every page. An editor may need titles, descriptions, headings, and canonical links. An enrichment task may need public contact strings and their source page. Selecting those groups at collection time creates a smaller, easier-to-review table than handing downstream code a mixture of raw HTML and guesses.
Structured Extract build 0.1.15 reads authorized public static HTML and extracts supported field groups. It does not render a browser or ask an LLM to fill missing values. The distinction matters whenever an empty field could otherwise be mistaken for an established fact about the website.
Request the fields the next decision uses
This illustrative request limits the response to three editorial groups:
{
"urls": ["https://example.com"],
"fields": ["title", "description", "canonical"],
"maxConcurrency": 1
}
The example defines an input, not a newly observed page result. Up to 100 public HTTP(S) URLs are supported. The field selector accepts title, description, image, siteName, canonical, jsonLd, headings, links, emails, and prices. An empty selector means all supported groups, so do not use an empty list when your intention is to request nothing.
Normalized duplicates are processed once. Keep the original URL and the returned source identity in your table, especially if your upstream list contains fragment variants or equivalent URLs. A redirected page should remain traceable to the request that produced it.
Keep empty, failed, and partial separate
A successful page response may contain none of the requested groups. That is still a delivered page observation in the installed runtime. It can be billable even when the selected fields are empty. The review action CHECK_PAGE_RENDERING_OR_FIELD_SCOPE helps explain why an editor should investigate the scope instead of treating the run as an extraction outage.
A blocked or failed source is different. No observed title after a failed fetch does not mean the page lacks a title. Preserve failureType, retryable, and source evidence when routing such rows. An infrastructure retry should not overwrite the earlier failure as though it had never happened.
Collection is also bounded. The installed parser limits HTML to 600,000 bytes and caps emitted headings at twenty, links at fifty, email strings at fifty, and price observations at twenty. The partial flag discloses a response truncated at the HTML byte cap. The per-field count caps are separate limits and do not themselves set partial, so reaching a count cap is a reason to review coverage. Preserve these boundaries so a spreadsheet filter does not make a bounded sample look complete.
Use the table as staging data
For an editorial workflow, create columns for the requested field group, observed value, source URL, observation time, completeness state, and review disposition. A missing canonical in a successful initial response can become an editor task. It should not become an automatic edit to the live website without a separate decision.
Public email strings are observations, not mailbox verification or permission to send. A price string is similarly narrower than an offer: it does not establish stock, final checkout price, taxes, or availability. Keep those interpretation limits attached when reusing the same collector across different teams.
A practical acceptance exercise uses one simple static page, one JavaScript-heavy page, and a source that fails. Request the same small field set for each and check that successful-empty, partial, and failed states remain distinct. Add a duplicate URL variant to inspect deduplication. These are proposed checks and do not represent a fresh cloud run.
The final output should help an editor or analyst identify what was actually observable under a documented collection scope. A clean table is useful when its missing values remain honest. Removing the gaps may make the export look tidy while making the next decision harder to defend.
Cost and source boundary
The live FREE-tier event prices checked on 20 October 2026 are $0.002 per result-found event and $0.005 per automatic Actor-start event. The start event is memory-scaled: one event per GB, with a minimum of one event. A free result outcome therefore does not make an entire run free. Other account tiers have their own rates; check the live pricing panel before execution. These prices describe the installed contract, not measured customer revenue or a new runtime test.
Inspect the Actor, input, and current pricing.
AI-assisted drafting; technical statements reviewed against the installed Actor source and current API metadata. Examples are illustrative unless explicitly identified as saved observations.
Top comments (0)