b2KIT

Software App Schema Builder

Generate SoftwareApplication schema with platform, pricing, rating, and download info. Preview the app rich result.

Tested tool guide Tested browser tools Checked August 16, 2026

What Software App Schema Builder does, with a checked example

A software page without markup shows up in Google as a plain blue link, while apps that publish SoftwareApplication JSON-LD can surface with a rating, review count, and price badge. This tool collects the fields a software listing needs - name, platform, category, pricing, rating, download URL, version - and emits a JSON-LD script block you paste into the page, plus a preview of the software app rich result. The part that trips people up: a price field is required even for free apps, and it must read 0.

Worked example

A concrete input and expected output from the current implementation.

Input

App name: Pocket Ledger
Description: Track daily expenses and budgets on any device.
Operating system: iOS
Category: FinanceApplication
Price: 0 (free)
Currency: USD
Download URL: https://example.com/apps/pocket-ledger
Rating: 4.5
Rating count: 1280
Version: 2.3.1

Expected output

{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Pocket Ledger",
  "description": "Track daily expenses and budgets on any device.",
  "operatingSystem": "iOS",
  "applicationCategory": "FinanceApplication",
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "USD"
  },
  "downloadUrl": "https://example.com/apps/pocket-ledger",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "ratingCount": "1280"
  },
  "softwareVersion": "2.3.1"
}

Every entered field maps to a SoftwareApplication property: the rating pair becomes aggregateRating, the price stays a string so a free app reads "0", and the currency uses the ISO 4217 code USD. This matches the shape Google requires for software app markup, where even free apps must carry an offers block.

How the result is produced

1

Field-to-property mapping

Every form field becomes one JSON-LD property on a SoftwareApplication node: name, description, operatingSystem, applicationCategory, softwareVersion, downloadUrl, and an offers object holding price and priceCurrency, entered as an ISO 4217 code such as USD or EUR. Rating inputs produce an aggregateRating object with ratingValue and ratingCount. The generator wraps everything in an @context of https://schema.org and prints a script tag you can paste into the page.

2

Rich result preview

The preview draws the software app rich result: app name, description, star rating with count, and a price line, laid out from the values you entered. It is a local simulation, not a live lookup. Google renders rich results from its own crawl of the published page and applies its structured data policies, so treat the preview as a formatting check, not a promise that the rich result will appear.

Good uses

  • You maintain the download page for a mobile or desktop app and want Google to show stars, review count, and a price badge for it instead of a bare link.
  • You are releasing a free app and need the offers block done right, including the price property set to 0 that Google requires even for free software.
  • You manage a site with several app pages and want one reusable JSON-LD pattern so every page carries consistent, valid SoftwareApplication markup.

Limits and checks

  • The preview is simulated. Google decides rich-result eligibility from its own crawl of the live page, so markup that previews cleanly here can still fail to produce a rich result once published.
  • aggregateRating should reflect real reviews that users can read on the page. Rating markup for content that is not visible on the page is self-serving review spam under Google's structured data policies and can lead to a manual action.
  • The price and currency must match what the page actually offers. A free app needs 0, and a paid app with a missing currency code or a price that contradicts the page text will not qualify for the rich result.

Common questions

Where do I paste the generated code?

Into the page that actually describes the app - the head is the usual spot, and Google also accepts JSON-LD script blocks placed in the body. Keep the markup on the same page as the visible app information it describes, then run the live URL through Google's Rich Results Test; it flags missing required properties like offers.price.

Why does a free app need a price at all?

Google's software app guidelines list offers.price and offers.priceCurrency as required properties for every software app page, free or paid. A free app states 0; omitting the offers block entirely is a common way this markup fails Google's testing tool, even when the app itself costs nothing. If you charge, the price must match what the page offers.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools