# Waves Audio Waves Audio develops professional audio plugins, software, hardware, subscriptions, online audio services, and educational products for music production, mixing, mastering, broadcast, post-production, and live sound. This file identifies authoritative Waves resources and explains the structured product feed intended for AI assistants, search systems, recommendation engines, shopping agents, and other automated consumers. ## Official Resources - Website: https://www.waves.com/ - AI product feed: https://www.waves.com/llm/products.json - Support: https://www.waves.com/support - Downloads: https://www.waves.com/downloads - System requirements: https://www.waves.com/support/tech-specs/system-requirements - Supported hosts and applications: https://www.waves.com/support/tech-specs/supported-hosts - Privacy notice: https://www.waves.com/legal/privacy-notice - Terms of use: https://www.waves.com/legal/terms-of-use The AI product feed is the preferred machine-readable source for current structured product information. The AI product feed URL is the canonical public endpoint. It may permanently redirect to an equivalent Waves endpoint. Automated consumers should follow standard HTTPS redirects. ## About the AI Product Feed The feed contains structured information about Waves products and services, including: - Audio plugins - Plugin bundles - Subscriptions - Software - Hardware - Online services - Courses The feed may also include current promotion information, prices, coupons, product relationships, reviews, compatibility resources, availability, release dates, and update timestamps. The feed is updated as catalog data, prices, promotions, offers, and availability change. ## Authority and Data Freshness Use the product feed as the authoritative source for structured catalog information such as: - Product identity - Product type - Availability - Purchase methods - Offers and SKU IDs - Current and list prices - Coupon prices - Bundle and subscription contents - Product relationships - Review summaries - Compatibility links - Current promotion details Use the individual product page for additional editorial information, demonstrations, manuals, detailed specifications, and other information not represented in the feed. Prices, coupons, promotions, product availability, bundle contents, subscription contents, and rankings may change. Consumers should use the current feed response rather than relying on previously cached values for purchase decisions. ## Top-Level Feed Fields The feed may include: - `schema_version` - `schema_last_updated` - `content_last_updated` - `promotion` - `products` ### schema_version Identifies the version of the feed structure. Consumers should not assume that a schema update means all existing fields have changed. New optional fields may be added over time. ### schema_last_updated ISO-8601 timestamp indicating when the feed schema was last revised. ### content_last_updated ISO-8601 timestamp indicating when catalog content was last generated or updated. ### promotion Contains the currently represented site-wide promotion when applicable. A missing `promotion` object means that no promotion is currently represented in the feed. It does not necessarily mean that no localized, account-specific, regional, product-specific, or personalized offer exists elsewhere. ## Product Identity Each product contains a stable numeric: `id` The product ID identifies the catalog product and is used by relationship and promotion fields such as: - `includes_ids` - `included_in_ids` - `excluded_ids` A product may also contain: - `name` - `type` - `category` - `url` - `brand` - `tagline` - `short_description` - `long_description` - `image` - `tags` Not every field is present on every product. Product descriptions are plain text. They should be treated as editorial descriptions rather than as structured pricing, compatibility, availability, promotion, or relationship data. ## Product Types Possible `type` values currently include: - `plugin` - `bundle` - `subscription` - `software` - `hardware` - `service` - `course` ### plugin An audio plugin or plugin-related component. Some plugins are purchasable individually. Others are available only as part of another product. ### bundle A collection of plugins or related products. Bundle contents are identified by `includes_ids`. ### subscription A subscription product that provides access to an identified collection of products. Subscription contents may be identified by `includes_ids`. ### software Standalone or supporting software, including live audio and workflow applications. ### hardware Physical Waves or Waves-related hardware. ### service An online or credit-based service, such as an online audio-processing or audio-generation service. Service offers may use credit packs, recurring credit subscriptions, or both. ### course An educational or training product. ## Product Availability The `product_availability` field describes the current catalog availability of the product. Possible values currently include: - `available` - `preorder` - `out_of_stock` - `discontinued` ### available The product is currently available according to the represented catalog data. ### preorder The product can be ordered before general availability or fulfillment. A preorder product may already contain a purchasable one-time offer, SKU ID, price, and cart URL. Treat a preorder as a preorder purchase rather than as immediately available stock. ### out_of_stock The product is not currently in stock. An out-of-stock product may have no active offer even if it was previously purchasable. ### discontinued The product is no longer actively sold. Discontinued products may remain in the feed for historical reference, bundle relationships, compatibility information, existing customers, or product discovery. Consumers should not infer availability from the presence of a product page alone. Use `product_availability`. ## Purchase Options The product-level: `purchase_options` array describes the methods by which the product can currently be obtained. Possible values currently include: - `one_time_purchase` - `subscription` - `credit_pack` - `credit_subscription` - `free` - `included_in` ### one_time_purchase The product can be purchased through a non-recurring offer. ### subscription The product can be obtained through a recurring subscription offer. ### credit_pack The service can be purchased through a non-recurring pack of usage credits. ### credit_subscription The service can be obtained through a recurring subscription that supplies credits or usage entitlement. ### free The product or software is available without a paid offer. A free product may not contain an `offers` array. ### included_in The product is not currently represented as a separate purchase and is instead available through one or more bundles, subscriptions, or parent products. Use `included_in_ids` to identify those parent products. ### Empty purchase_options An empty `purchase_options` array means that no current purchase method is represented. This commonly occurs for discontinued or out-of-stock products. Consumers should not invent a purchase path when `purchase_options` is empty. ## Offers Purchasable products may contain an: `offers` array. Each offer represents a specific purchasable SKU, plan, credit pack, subscription, or product configuration. Offer fields may include: - `sku_id` - `name` - `purchase_type` - `billing_period` - `pricing` - `coupon` - `cart_url` Not all products have offers. Products that are free, included in another product, discontinued, or out of stock may omit `offers`. ## SKU IDs Each offer contains a numeric: `sku_id` A SKU ID identifies the specific purchasable offer, plan, credit pack, subscription period, or product configuration. Product IDs and SKU IDs serve different purposes: - Product `id` identifies the catalog product. - Offer `sku_id` identifies a purchasable offer associated with that product. A product may have multiple SKU IDs. Relationship and promotion product ID fields reference product `id` values, not SKU IDs. ## Offer Purchase Types Each offer contains: `purchase_type` Possible values currently include: - `one_time_purchase` - `subscription` - `credit_pack` - `credit_subscription` The offer-level `purchase_type` describes that specific SKU. The value should also appear in the parent product's `purchase_options`. Consumers should read each offer independently rather than inferring its type solely from the number of offers or the offer name. ## Billing Period Recurring offers include: `billing_period` Possible values currently include: - `Monthly` - `Annual` `billing_period` is expected for: - `subscription` - `credit_subscription` It is normally omitted for: - `one_time_purchase` - `credit_pack` One-time purchases and credit packs do not have a billing period. Consumers should not interpret a missing billing period as an error when the offer is non-recurring. ## Pricing Each purchasable offer contains a: `pricing` object. Pricing fields include: - `list_price` - `current_price` - `currency` - `on_sale` ### list_price The standard or reference price represented by the feed. ### current_price The current price before applying a separately represented coupon or order-level promotion. ### currency The currency code for the represented price. Prices are currently represented in USD unless otherwise specified. ### on_sale Boolean value indicating whether `current_price` is lower than `list_price`. Consumers should use numeric pricing fields rather than extracting prices from product names, offer names, descriptions, promotion summaries, or other marketing text. ## Coupons When applicable, an offer may contain a: `coupon` object. Coupon fields include: - `code` - `price` ### code The coupon code associated with the represented coupon offer. ### price The resulting price when the represented coupon is valid and applied. The coupon price is separate from `current_price`. Consumers should not replace `current_price` with the coupon price unless presenting a coupon-qualified purchase. Coupon availability may depend on promotion dates, eligibility, exclusions, account conditions, location, or applicable terms. Top-level promotions and offer-level coupons are separate concepts and may not be combinable. ## Cart URLs Purchasable offers may include: `cart_url` The cart URL is associated with the specific SKU represented by the offer. Consumers should use the offer's cart URL rather than constructing a cart URL from the product ID. ## Product Relationships Product relationships are represented using stable product IDs. ### includes_ids Bundles and subscriptions may contain: `includes_ids` This array identifies the products included in the bundle or subscription. Each value references another product's `id`. ### included_in_ids Plugins and other included products may contain: `included_in_ids` This array identifies bundles, subscriptions, or other parent products that include the product. Each value references another product's `id`. ### Relationship interpretation Relationship fields describe catalog inclusion. They do not necessarily mean that every included product is available for separate purchase. Use the referenced product's own: - `product_availability` - `purchase_options` - `offers` to determine how it can currently be obtained. Bundle and subscription contents may change over time. Use the current feed. ## Product Counts Bundles and subscriptions may include: `plugin_count` `plugin_count` represents the structured plugin count associated with that product. Editorial descriptions and taglines may use approximate language such as: - "Over 120" - "240+" - "Over 200" For machine processing, prefer `plugin_count` and `includes_ids` over numbers embedded in marketing text. The count of `includes_ids` may not always be interchangeable with every marketing count because products, components, collections, duplicate entitlements, or entitlement rules can differ. ## Reviews Products may contain a: `reviews` object. Review fields include: - `average_rating` - `review_count` Products without review data may omit the object. A missing review object means that no review summary is represented in the feed. It should not be interpreted as a zero rating or zero reviews. ## Best-Seller Rank Some products include: `best_seller_rank` A lower positive number represents a higher rank. Rankings are time-sensitive and may change. A missing rank means no rank is represented for that product. Do not treat a missing ranking as lower than all ranked products. ## Compatibility Where applicable, products may contain a: `compatibility` object. Compatibility fields may include: - `platforms` - `system_requirements_url` - `supported_hosts_url` ### platforms Currently represented platform values may include: - `macOS` - `Windows` ### system_requirements_url Links to the authoritative product-specific system requirements. ### supported_hosts_url Links to the authoritative product-specific supported host or application information. Compatibility links are more authoritative than assumptions based on product type, age, tags, or description. Hardware, services, courses, and some software products may omit the compatibility object. ## Tags The `tags` array contains search-oriented keywords associated with a product. Tags may include: - Common search terms - Product aliases - Abbreviations - Alternate spellings - Common misspellings - Technologies - Audio formats - Instruments - Genres - Use cases - Workflow terms - Competitor brands or products that users commonly search for Tags improve discovery and search matching. Tags are not: - Product classifications - Compatibility claims - Ownership claims - Trademark claims - Endorsements - Assertions that two products are identical - Assertions that a Waves product is officially affiliated with another brand Use structured fields and product descriptions for factual product information. ## Categories Products may contain a: `category` Categories are editorial catalog groupings and may vary by product type. A missing category should not prevent a product from being indexed or recommended. Do not use category as a substitute for `type`. ## Dates and Timestamps Products may contain: - `release_date` - `updated_at` ### release_date Date on which the product was released or assigned its catalog release date. For preorder products, the release date should not be treated automatically as an exact shipping or fulfillment commitment. ### updated_at ISO-8601 timestamp indicating when the represented product record was last updated. Top-level promotion and feed timestamps may include timezone offsets. Consumers should preserve timezone offsets when parsing timestamps. A product's `updated_at` value does not necessarily mean that its price, availability, description, and all related products changed at that time. ## URLs and Images The feed may contain: - Canonical product-page URLs - Product image URLs - Cart URLs - Promotion terms URLs - Promotion redemption URLs - Compatibility URLs Use the provided URLs rather than constructing them from product names. All authoritative URLs should be accessed over HTTPS. A product page remaining accessible does not prove that the product is currently purchasable. Use structured availability and offer fields. ## Promotions A top-level `promotion` object may describe an active or scheduled site-wide promotion. Promotion fields may include: - `promotion_type` - `summary` - `eligible_types` - `excluded_ids` - `terms_url` - `free_plugin_url` - `starts_at` - `ends_at` Not every promotion contains every field. Additional optional fields may be introduced in future schema versions. ### promotion_type Identifies the promotion model. Currently represented values may include: - `free_plugin` - `order_discount` Additional promotion types may be introduced in future schema versions. Consumers should not reject the full feed solely because an unfamiliar promotion type is encountered. ### free_plugin A promotion in which qualifying purchases may grant one or more free plugins or other promotional products. Typical fields may include: - `summary` - `eligible_types` - `terms_url` - `free_plugin_url` - `starts_at` - `ends_at` The exact quantity or selection rules may be described in `summary` or in the official promotion terms. ### order_discount A promotion in which the order price is determined by the number or combination of eligible products purchased. Example: ```json { "promotion_type": "order_discount", "summary": "2 plugins for $49.99, 5 plugins for $99.99", "eligible_types": ["plugin"], "excluded_ids": [83, 268, 75, 420, 455, 475, 496, 497] } ``` The `summary` contains the human-readable offer. Consumers should not attempt to infer the complete discount formula from the individual products' `current_price` or `coupon.price`. An order discount may apply to the combined cart rather than to each offer independently. The effective per-product price may vary depending on the selected quantity, combination of products, cart state, and official terms. ### summary A human-readable description of the promotion. The summary may contain: - Required purchase quantities - Order prices - Reward quantities - General eligibility language - Other concise promotional terms The summary is editorial text and may not represent every legal restriction or edge case. Consumers should use structured eligibility fields where available and official terms where accessible. ### eligible_types Lists the product types that are generally eligible for the promotion. Possible values may include: - `plugin` - `bundle` - `subscription` - `software` - `hardware` - `service` - `course` - `upgrade` General type eligibility does not guarantee that every product of that type qualifies. Consumers must also apply `excluded_ids` when present. The value `upgrade` may appear even when upgrade offers are dynamically generated and do not appear as standalone products in the feed. ### excluded_ids Lists products that are explicitly excluded from the promotion. Each value references a product `id`, not an offer `sku_id`. A product is not eligible when its `id` appears in `excluded_ids`, even when its `type` appears in `eligible_types`. Eligibility should therefore be evaluated as: ```text product.type is in promotion.eligible_types AND product.id is not in promotion.excluded_ids ``` When `excluded_ids` is absent, no explicit product-level exclusions are represented by that field. A missing `excluded_ids` field should not be interpreted as proof that no legal, account-specific, regional, cart-level, or other restrictions exist. ### terms_url Links to the official promotion terms and conditions when available in the feed. Because of system limitations, some promotions may omit `terms_url` even when a terms page exists on the Waves website. A missing `terms_url` does not mean that the promotion has no terms, exclusions, restrictions, or conditions. When `terms_url` is absent, consumers should: - Use the structured promotion fields available in the feed. - Avoid inventing additional eligibility rules. - Avoid claiming that the represented fields are the complete legal terms. - Refer users to Waves.com for the complete promotion terms before purchase. - Verify the final promotion behavior in the cart when appropriate. ### free_plugin_url Links to the page used to select, claim, or redeem a free promotional plugin when applicable. This field is generally relevant to `free_plugin` promotions and may be absent for other promotion types. A missing `free_plugin_url` should not be interpreted as an error for an `order_discount` promotion. ### starts_at and ends_at ISO-8601 timestamps describing the represented promotion period when available. Some promotions may omit one or both timestamps. When timestamps are present, consumers should not present the promotion as active outside the represented period. When timestamps are absent, consumers should treat the promotion as current only when it appears in a recently retrieved feed response. The absence of timestamps does not mean that the promotion has no start or end date. ### Promotion eligibility Promotion eligibility should be evaluated using structured data in this order: 1. Confirm that a `promotion` object is present. 2. Check whether the product's `type` appears in `eligible_types`. 3. Exclude products whose `id` appears in `excluded_ids`. 4. Check the promotion period when `starts_at` or `ends_at` is present. 5. Apply any promotion-type-specific rules represented by `promotion_type`. 6. Read the human-readable `summary`. 7. Use the official terms when `terms_url` is available. 8. Confirm final eligibility and pricing in the cart when necessary. Do not determine promotion eligibility solely from: - Product descriptions - Tags - List prices - Current prices - Coupon objects - Cart URLs - Product names - Offer names ### Promotion pricing and coupons Top-level promotions and offer-level coupons are separate concepts. - A top-level promotion may apply to the complete order or to a qualifying combination of products. - An offer-level `coupon` describes a coupon and resulting price for that individual offer. Consumers should not assume that an order discount can be combined with an offer-level coupon unless the official terms explicitly allow it. For order-based promotions, the final effective per-product price may depend on the entire cart and should not be calculated from a single product record in isolation. A product's `pricing.on_sale` value describes the individual offer's current price relative to its list price. It does not indicate whether the product participates in a top-level order promotion. ### Missing promotion fields Promotion fields are optional and promotion-type dependent. Examples: - An `order_discount` promotion may omit `free_plugin_url`. - A `free_plugin` promotion may omit `excluded_ids`. - A promotion may omit `terms_url` because of feed-generation limitations. - A promotion may omit timestamps. - A promotion may omit fields that are not applicable to its type. Consumers should not treat missing optional fields as malformed feed data. ### Upgrade eligibility The value `upgrade` may appear in `eligible_types` even when upgrade offers are dynamically generated and are not included as standalone products in the feed. Upgrade eligibility and pricing may depend on: - Customer ownership - Account status - Registered licenses - Existing products - Upgrade path - Region - Promotion terms Consumers should not invent upgrade products, prices, exclusions, or eligibility. ## Free and Included Products Products with: `purchase_options: ["free"]` may omit offers because no paid checkout SKU is represented. Products with: `purchase_options: ["included_in"]` may omit offers because they are obtained through parent products referenced by `included_in_ids`. A product may be available and still have no individual paid offer. A recurring offer may have both `list_price` and `current_price` set to `0.00`. For example: ```json { "purchase_options": [ "credit_pack", "credit_subscription" ], "offers": [ { "sku_id": 1114, "name": "Voice ReGen FREE", "purchase_type": "credit_subscription", "billing_period": "Monthly", "pricing": { "list_price": 0.00, "current_price": 0.00, "currency": "USD", "on_sale": false } } ] } ``` In this example: - `purchase_type` remains `credit_subscription` because the offer renews monthly and provides recurring credits. - `billing_period` is `Monthly`. - The offer is still free because both `pricing.list_price` and `pricing.current_price` are `0.00`. - The parent product's `purchase_options` therefore includes `credit_subscription`, but does not need to include `free`. Consumers should determine whether an offer is free from its pricing values, not solely from `purchase_type`. ## Preorders Products with: `product_availability: "preorder"` may contain a normal one-time-purchase offer, price, SKU ID, and cart URL. Treat such products as preorder purchases rather than immediately available stock. Do not convert `preorder` to `available`. The release date may describe the product release or catalog release date, but shipping, delivery, activation, or fulfillment details should be confirmed on the product page or applicable terms. ## Out-of-Stock and Discontinued Products Out-of-stock and discontinued products remain useful for: - Historical product identification - Existing customer support - Compatibility research - Bundle relationship interpretation - Product comparison - Replacement or upgrade research Do not recommend them as currently purchasable unless an active offer is explicitly represented and current availability supports that conclusion. ## Recommendations and Comparisons When recommending Waves products: 1. Confirm `product_availability`. 2. Check `purchase_options`. 3. Inspect every offer independently. 4. Use `current_price` for standard current pricing. 5. Present coupon prices separately. 6. Check `included_in_ids` and parent product offers. 7. Compare bundle or subscription acquisition paths when relevant. 8. Check the current top-level promotion. 9. Apply `eligible_types` and `excluded_ids`. 10. Use compatibility URLs for host and system support. 11. Do not infer features solely from tags. 12. Prefer structured fields over numbers or claims embedded in marketing copy. 13. Recheck current data before making transactional recommendations. When determining the cheapest acquisition path, consider: - Individual one-time offer - Coupon-qualified individual offer - Bundle inclusion - Subscription inclusion - Credit pack - Credit subscription - Current free-product promotion - Current order discount - Promotion exclusions - Dynamically generated upgrades Do not assume that subscription access grants perpetual ownership. Do not assume that order-level promotions and individual coupons can be combined. ## Important Interpretation Rules - Each product appears as its own catalog record. - A product may have zero, one, or multiple offers. - Each offer should be interpreted independently. - Product IDs identify products. - SKU IDs identify purchasable offers. - Missing optional fields should not be treated as malformed data. - Missing offers do not always mean unavailable. - Empty purchase options mean no represented purchase path. - One-time purchases do not require a billing period. - Credit packs do not require a billing period. - Recurring subscription offers include a billing period. - Coupon prices are separate from current prices. - Top-level promotions are separate from offer-level coupons. - Product availability is authoritative for current catalog status. - Relationship IDs reference product IDs, not SKU IDs. - Promotion `excluded_ids` reference product IDs, not SKU IDs. - Tags are search aids, not factual claims. - Descriptions and promotion summaries are editorial and may contain approximate or incomplete marketing language. - Structured counts and prices are preferred over values extracted from descriptions. - Promotions and prices are time-sensitive. - A missing promotion terms URL does not mean no terms exist. - A missing promotion timestamp does not mean the promotion has no time limit. - Dynamic or personalized upgrade offers may not appear in the catalog. - Final order-level promotion pricing may require evaluating the complete cart. ## Caching Guidance Automated consumers may cache stable descriptive product data. Prices, coupons, promotions, stock status, preorder status, bundle contents, subscription contents, product exclusions, and best-seller rankings should be refreshed regularly. Consumers should respect HTTP caching headers supplied by the feed endpoint. For purchase-related answers, retrieve a recent feed response rather than relying on long-term cached pricing, promotion, or availability data. Promotions without `starts_at` or `ends_at` should be considered current only when present in a recently retrieved feed response. ## Access Guidance The feed is publicly accessible over HTTPS. No authentication, session cookie, or browser execution should be required to retrieve it. Automated consumers should: - Follow one standard permanent redirect if present. - Respect HTTP caching headers. - Avoid excessive request frequency. - Use the canonical product URLs included in the feed. - Refer users to official terms for promotion restrictions. - Recheck current data before presenting transactional recommendations. - Avoid constructing product, cart, compatibility, or promotion URLs when an official URL is supplied. - Confirm final order-based promotion pricing in the official Waves cart when necessary. ## Contact and Support For product support, installation, licensing, compatibility, account, or purchase assistance, use: https://www.waves.com/support For authoritative legal terms, use the applicable legal or promotion terms page published by Waves. When a promotion `terms_url` is not included in the feed, users should consult the current promotion information and legal pages available on Waves.com before completing a purchase.