SoftwareApplication schema for web extraction
The SoftwareApplication shape captures the facts a software listing page exposes about a single app or program: what it is called, what category it falls under, which operating systems it runs on, what it costs, how users have rated it, which version is current, and who publishes it. Instead of writing brittle CSS selectors that break the moment an app store, a SaaS pricing page or a download portal reshuffles its DOM, you hand Extracto one URL and this JSON schema. The page runs through a real headless browser, so JavaScript-rendered pricing widgets and review counts that load after the initial HTML are present by the time extraction happens. The result is typed JSON validated against the schema you sent, with any field the page does not actually expose returned as null rather than a guessed or hallucinated value. That null-not-guess contract matters for software data specifically, because a missing rating count or an absent price is meaningful signal, not noise to be filled in. You describe the fields you want in plain language and types; Extracto figures out where they live on the page. Numbers like price, rating and ratingCount come back as real JSON numbers you can compare and sort, not as strings you have to parse and clean downstream.
Fields in a SoftwareApplication schema
The fields teams most often extract for a softwareapplication, what type each one is, and whether it is usually present.
| Field | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | The product or application name as displayed on the listing, for example the title shown at the top of an app store page or SaaS product page. Returned as a clean string so you can key records and deduplicate across sources without stripping marketing taglines. |
| category | string | optional | The application category or genre, such as Productivity, Developer Tools, Photography or Game. Mapping to Schema.org applicationCategory, it lets you bucket and filter apps by type. Returned null when the page states no category rather than inventing a plausible one. |
| operatingSystem | string | optional | The supported operating systems or platforms, for example Windows, macOS, Linux, iOS or Android. Useful for compatibility filtering across a catalog. Validated as a string so cross-platform listings stay readable instead of arriving as inconsistent fragments. |
| price | number | optional | The listed price as a numeric value (0 for free apps), parsed out of the currency-formatted text on the page. Typed as a number so you can sort, threshold and aggregate directly. If the page shows no price (quote-only enterprise tiers), this returns null instead of a fabricated figure. |
| rating | number | optional | The average user rating, typically on a 1 to 5 scale, drawn from the page's aggregate rating. Returned as a real number for direct numeric comparison and ranking. A page with no ratings yet yields null, which is honest signal rather than a misleading default like 0. |
| ratingCount | number | optional | The number of ratings or reviews the average is based on, which tells you how trustworthy the rating itself is. Typed as an integer-style number so you can weight or filter by review volume. Null when the page does not disclose a count, never an estimate. |
| version | string | optional | The current software version or release identifier, mapping to softwareVersion, such as 4.2.1 or 2026.3. Kept as a string because version schemes are not numeric. Helps you track release cadence; returns null on pages (many SaaS apps) that never publish a version number. |
| publisher | string | optional | The publisher, developer or vendor responsible for the application, for example the company or author name credited on the listing. Returned as a string for attribution and grouping by maker. Null when the page omits an explicit publisher rather than guessing from the URL. |
The schema
Copy this and send it with any URL.
{
"name": "string",
"category": "string",
"operatingSystem": "string",
"price": "number",
"rating": "number",
"ratingCount": "number",
"version": "string",
"publisher": "string"
} Example output
Validated JSON back, matching the schema.
{
"name": "Things 3",
"category": "Productivity",
"operatingSystem": "iOS, macOS",
"price": 9.99,
"rating": 4.8,
"ratingCount": 48213,
"version": "3.20.4",
"publisher": "Cultured Code GmbH & Co. KG"
} Try this softwareapplication schema against a real page in the live demo, or read the docs to use it via the API.