---
title: "SoftwareApplication Schema - JSON-LD Guide &amp; Examples · Unhead"
canonical_url: "https://unhead.unjs.io/docs/angular/schema-org/api/schema/software-app"
last_updated: "2026-09-04T10:21:05.904Z"
meta:
  description: "Implement SoftwareApplication structured data with Unhead. See JSON-LD examples for app listings, ratings, pricing, and platform compatibility."
  "og:description": "Implement SoftwareApplication structured data with Unhead. See JSON-LD examples for app listings, ratings, pricing, and platform compatibility."
  "og:title": "SoftwareApplication Schema - JSON-LD Guide & Examples · Unhead"
---

Home

`
Unhead on GitHub

Switch to AngularSwitch to TypeScriptSwitch to VueSwitch to ReactSwitch to SvelteSwitch to Solid.jsSwitch to Nuxt

**Schema**

# **SoftwareApplication Schema - JSON-LD Guide & Examples**

[Copy for LLMs](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/schema-org/5.api/9.schema/software-app.md)

SoftwareApplication schema describes a software product with its features, pricing, ratings, and platform compatibility. Supported markup can make an app page eligible for a [**~~Google software app rich result~~**](https://developers.google.com/search/docs/appearance/structured-data/software-app).

## JSON-LD Example

```
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Photo Editor Pro",
  "operatingSystem": "Windows, macOS",
  "applicationCategory": "DesignApplication",
  "offers": {
    "@type": "Offer",
    "price": "9.99",
    "priceCurrency": "USD"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "ratingCount": 1250
  }
}
```

Use the [**~~Schema.org Generator~~**](https://unhead.unjs.io/tools/schema-generator) to build your structured data visually.

## Schema.org SoftwareApp

- **Type**: `defineSoftwareApp<T extends Record<string, any>>(input?: SoftwareApp & T)`  
  Describes a SoftwareApp.

## Useful Links

- [**~~SoftwareApplication - Schema.org~~**](https://schema.org/SoftwareApplication)
- [**~~SoftwareApp Schema Markup - Google Search Central~~**](https://developers.google.com/search/docs/appearance/structured-data/software-app)

## Defaults and resolves

- `**@type**` defaults to `**SoftwareApplication**`; a different supported string type is augmented with `**SoftwareApplication**`.
- A root app receives an ID such as `**${canonicalUrl}#/schema/software-application/{n}**`.
- `**offers**`, `**aggregateRating**`, and `**review**` are resolved with their corresponding nested resolvers.

The input type requires `**name**`, `**offers**`, and either `**aggregateRating**` or `**review**`. Each Offer requires a direct price or a price specification. A free app still needs `**offers.price: 0**`; Unhead performs no runtime eligibility validation. See [**~~Google's SoftwareApplication property table~~**](https://developers.google.com/search/docs/appearance/structured-data/software-app#structured-data-type-definitions).

## Example

```
defineSoftwareApp({
  name: 'Angry Birds',
  operatingSystem: 'ANDROID',
  applicationCategory: 'GameApplication',
  aggregateRating: {
    ratingValue: '4.6',
    ratingCount: 8864,
  },
  offers: {
    price: '1.00',
    priceCurrency: 'USD',
  },
})
```

## Types

```
type ApplicationCategory
  = 'GameApplication'
    | 'SocialNetworkingApplication'
    | 'TravelApplication'
    | 'ShoppingApplication'
    | 'SportsApplication'
    | 'LifestyleApplication'
    | 'BusinessApplication'
    | 'DesignApplication'
    | 'DeveloperApplication'
    | 'DriverApplication'
    | 'EducationalApplication'
    | 'HealthApplication'
    | 'FinanceApplication'
    | 'SecurityApplication'
    | 'BrowserApplication'
    | 'CommunicationApplication'
    | 'DesktopEnhancementApplication'
    | 'EntertainmentApplication'
    | 'MultimediaApplication'
    | 'HomeApplication'
    | 'UtilitiesApplication'
    | 'ReferenceApplication'

interface SoftwareAppBase extends Thing {
  '@type'?: Arrayable<'SoftwareApplication' | 'MobileApplication' | 'VideoGame' | 'WebApplication'>
  /**
   * The name of the app.
   */
  'name': string
  /**
   * An offer to sell the app.
   * For developers, offers can indicate the marketplaces that carry the application.
   * For marketplaces, use offers to indicate the price of the app for a specific app instance.
   */
  'offers': NodeRelations<Offer>
  /**
   * The type of app (for example, BusinessApplication or GameApplication). The value must be a supported app type.
   */
  'applicationCategory'?: ApplicationCategory
  /**
   * The operating system(s) required to use the app (for example, Windows 7, OSX 10.6, Android 1.6)
   */
  'operatingSystem'?: string
  /**
   * A description of the app.
   */
  'description'?: string
  /**
   * URL to download the app.
   */
  'downloadUrl'?: string
  /**
   * The version of the app.
   */
  'softwareVersion'?: string
  /**
   * A list of features offered by the app.
   */
  'featureList'?: string[]
}

type SoftwareAppRating
  = | {
    aggregateRating: NodeRelation<AggregateRating>
    review?: NodeRelation<Review>
  }
  | {
    aggregateRating?: NodeRelation<AggregateRating>
    review: NodeRelation<Review>
  }

export type SoftwareAppSimple = SoftwareAppBase & SoftwareAppRating
```

## Related Schemas

- [**~~Organization~~**](https://unhead.unjs.io/docs/schema-org/api/schema/organization): App developer/publisher
- [**~~Person~~**](https://unhead.unjs.io/docs/schema-org/api/schema/person): App author

[Edit this page](https://github.com/unjs/unhead/edit/main/docs/schema-org/5.api/9.schema/software-app.md)

[Markdown For LLMs](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/schema-org/5.api/9.schema/software-app.md)

**Did this page help you? **

[**Service Schema** Use defineService() to describe a service offering, including pricing, provider, service area, channels, ratings, and reviews.](https://unhead.unjs.io/docs/schema-org/api/schema/service) [**TV Episode Schema** Use defineTVEpisode() to add TVEpisode structured data with cast, director, and rating information.](https://unhead.unjs.io/docs/schema-org/api/schema/tv-episode)

**On this page **

- [JSON-LD Example](#json-ld-example)
- [Schema.org SoftwareApp](#schemaorg-softwareapp)
- [Useful Links](#useful-links)
- [Defaults and resolves](#defaults-and-resolves)
- [Example](#example)
- [Types](#types)
- [Related Schemas](#related-schemas)