B2B Intelligence

Product Changelog Entry

/extract/json

Schema for individual product changelog or release note entries.

Download the schemab2b-intel/product-changelog-entry.json

product-changelog-entry.schema

// names marked ? are optional

company_name:string// Name of the company publishing the changelog. Commonly found in: site header, changelog page header, og:site_name meta tag.
company_domain?:string// Website domain of the company. Commonly found in: site URL, canonical domain, changelog URL.
product_name?:string// Name of the specific product or component. Commonly found in: changelog entry header, product tag, release notes section title.
version?:string// Version number or release identifier. Commonly found in: changelog version heading, release tag, version badge.
release_date:string// Date of this changelog entry or release. Commonly found in: changelog entry date, release date display, article publish date.
change_type:string// Type of change described in this entry. Commonly found in: change type badge, changelog category label, entry tag. One of: feature, improvement, bugfix, deprecation, security, breaking_change, other.
title:string// Title or headline of the changelog entry. Commonly found in: changelog entry heading, release note title, h2/h3 tag.
description:string// Full description of the change. Commonly found in: changelog entry body, release note description, change detail text.
affected_products?:string[]// Products or modules affected by this change. Commonly found in: product tag labels, affected products list, changelog entry metadata.
affected_plans?:string[]// Pricing plans affected by this change. Commonly found in: plan availability note, plan tag labels, changelog metadata.
is_breaking?:boolean// Whether this is a breaking change. Commonly found in: breaking change badge, breaking label, changelog entry flag.
migration_required?:boolean// Whether migration steps are required for this change. Commonly found in: migration notice, action required label, breaking change section.
migration_guide_url?:string// URL to the migration guide for this change. Commonly found in: migration guide link, learn more link, documentation link in changelog.
changelog_url?:string// URL of the changelog page. Commonly found in: canonical link, changelog navigation link, source page URL.
page_title?:string// Title of the source page. Tabstack auto-fills this from page metadata when left empty.
favicon?:string// Favicon URL of the source page. Tabstack auto-fills this from page metadata when left empty.

Try it live

A sample Product Changelog Entry document, generated from the schema. Edit it, or paste a real response, and see it checked against the schema instantly. It runs in your browser, nothing is sent anywhere.

your-output.json
validation

Valid, matches Product Changelog Entry

Every required field is present and each value matches its type. Extra fields are allowed. A field the page does not carry is not guaranteed to come back as null, so check values rather than only checking for null.

/extract/json

Copy-paste usage

The same call in TypeScript, Python, and curl. Point it at your own URL and go. The schema drives the response, so you get back the fields you asked for instead of a page to parse.

Features

  • Typed TypeScript and Python SDKs
  • One call, no parsing code and no second LLM pass
  • The same field names on every request, even when the page layout changes
product-changelog-entry.ts
// curl -sfLO https://raw.githubusercontent.com/Mozilla-Ocho/tabstack-schemas/main/b2b-intel/product-changelog-entry.json
import Tabstack from '@tabstack/sdk'
import schema from './product-changelog-entry.json' with { type: 'json' }

const client = new Tabstack() // reads TABSTACK_API_KEY from the environment

try {
  const data = await client.extract.json({
    url: 'https://example.com/pricing',
    json_schema: schema,
    effort: 'standard', // 'min' | 'standard' | 'max'
  })

  console.log(data)
} catch (err) {
  console.error('Extraction failed:', err)
}

Ship this schema in one call.

Pass a URL, get matching JSON back. Free to start, no extraction layer to maintain.