Article schema for web extraction
An article schema captures the parts of a news story, blog post, or documentation page that matter for downstream use: the headline, author, publish date, summary, full body text, and tags. Teams extract this to build reading archives, feed summarization and classification models, monitor coverage of a topic, or power internal search over external writing. Because the schema names each field, you get structured records instead of a wall of HTML you still have to parse. Articles are a good fit for this approach because the model reads them by meaning, whether the text ships in the initial HTML or is rendered with JavaScript, since every request runs through a real headless browser. You describe what a headline or a publish date is, and the model pulls it from the rendered page. When a field like author is missing, it comes back as null rather than a guess, which keeps your dataset honest and lets you filter or backfill those records deliberately instead of trusting invented bylines.
Fields in a Article schema
The fields teams most often extract for a article, what type each one is, and whether it is usually present.
| Field | Type | Required | Notes |
|---|---|---|---|
| headline | string | yes | The main title of the article as shown on the page. This is the field most archives and search indexes are keyed on, so it is required rather than optional. |
| author | string | optional | The byline, the person or people credited with writing the piece. Returned as written on the page, and set to null when no author is listed rather than guessed from context. |
| publishDate | string | optional | The date the article was published, ideally in ISO 8601 form like 2026-05-21. Lets you sort chronologically and filter by recency without parsing free-form date strings later. |
| summary | string | optional | A short abstract or deck describing the article, usually one or two sentences. Useful for previews and as a lightweight signal for relevance ranking before you process the full body. |
| body | string | optional | The main article text, with navigation, ads, and boilerplate left out. This is the field you feed into summarization, classification, or full text search over the content you collect. |
| tags | string[] | optional | The topics or categories the article is filed under, returned as a list of strings. Helpful for grouping coverage by subject and for building faceted filters over a large archive. |
| section | string | optional | The site section the article lives in, such as Technology, Sports, or Opinion. Gives you a coarse editorial category that complements the finer-grained tags field. |
| canonicalUrl | string | optional | The canonical URL the publisher declares for the article. Useful as a stable key for deduplicating the same story collected from syndication, AMP, or tracking-parameter variants. |
The schema
Copy this and send it with any URL.
{
"headline": "string",
"author": "string",
"publishDate": "string",
"summary": "string",
"body": "string",
"tags": "string[]",
"section": "string",
"canonicalUrl": "string"
} Example output
Validated JSON back, matching the schema.
{
"headline": "City Council Approves New Riverside Park Plan",
"author": "Dana Whitfield",
"publishDate": "2026-05-21",
"summary": "The council voted seven to two to fund a twelve acre riverside park, with construction set to begin next spring.",
"body": "After months of public comment, the city council approved funding for the long-debated Riverside Park project on Tuesday evening...",
"tags": [
"local government",
"parks",
"urban planning"
],
"section": "Local",
"canonicalUrl": "https://example.com/news/riverside-park-approved"
} Try this article schema against a real page in the live demo, or read the docs to use it via the API.