Social and Content

Social Profile

/extract/json

Platform social profile (LinkedIn company, Twitter/X, etc.)

Download the schemasocial-content/social-profile.json

social-profile.schema

// names marked ? are optional

platform:string// The social platform this profile belongs to. Commonly found in: linkedin.com/company, twitter.com, x.com. One of: linkedin, twitter, x, github, instagram, youtube, tiktok, other.
profile_type:string// Whether this profile belongs to a person, company, or organization. One of: person, company, organization, other.
username_or_handle:string// The username or @handle for this profile.
display_name:string// The public display name of the profile.
bio?:string// Short biography or description text on the profile.
follower_count?:number// Number of followers.
following_count?:number// Number of accounts the profile is following.
post_count?:number// Total number of posts or tweets published.
verified?:boolean// Whether the profile has a verified badge.
website_url?:string// External website URL listed on the profile.
location?:string// Self-reported location of the profile.
founded_year?:number// Year the company was founded. Applicable to company profiles.
employee_count_range?:string// Employee count range for company profiles (e.g., '11-50').
industry?:string// Industry classification for company profiles.
profile_url:string// Canonical URL of the profile page.
avatar_url?:string// URL to the profile avatar / profile picture.
banner_url?:string// URL to the profile banner / header image.
pinned_post_url?:string// URL of the pinned post on the profile.
engagement_rate_pct?:number// Engagement rate as a percentage.
snapshot_at?:string// Timestamp when the profile data was snapshotted.
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 Social Profile 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 Social Profile

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
social-profile.ts
// curl -sfLO https://raw.githubusercontent.com/Mozilla-Ocho/tabstack-schemas/main/social-content/social-profile.json
import Tabstack from '@tabstack/sdk'
import schema from './social-profile.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/article',
    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.