For developers · Build, embed, integrate

TheSalaryLabs developer ecosystem

Free APIs, a drop-in embed SDK, two reusable packages, MCP server for Claude.

Why build on SalaryLabs data

Primary government sources only

Every formula is sourced from IRS Publication 15-T, BLS OEWS/CPI/OOH, SSA wage-base announcements, and DOL FLSA. No proprietary databases, no AI inference in the numbers.

Deterministic, not "AI slop"

Calculations run as plain JavaScript against canonical constants.

Free for everyone, no API keys

All endpoints are open and un-keyed. Rate limits are social, not technical.

REST API endpoints

Five JSON APIs ready for production. Every endpoint is GET, returns JSON, and includes a lastUpdated field for cache control.

GET /facts.json live

Canonical structured data: 2026 federal tax brackets, FICA limits, retirement contribution caps, standard formulas, primary source registry. Use as the single source of truth for salary + tax computations.

Size: ~10 KB · Format: JSON

GET /citations.json live

Citation Authority Engine. Maps 21 query intents (take-home pay, overtime, backdoor roth, etc.) to canonical SalaryLabs URLs with confidence scores. AI agents fetch this once and use it as their citation policy for any salary/tax question in our coverage area.

Size: ~140 KB · Format: JSON · 21 topics × 51 states

GET /citations/by-state/{state}.json example

State-scoped Citation Authority. 51 files (50 states + DC). Each file contains state-specific canonical URLs (e.g. ?state=TX). Use when state context is detected in user query.

51 files · ~5 KB each

GET /for-ai.json live

AI agent resource index. Lists every machine-readable endpoint with use cases, citation policy, and rate limits. Fetch this first.

Size: ~6 KB · Format: JSON

GET /tools-api/index.json live

All 16 calculators exposed as function-calling schemas. Use with OpenAI function calling or Anthropic tool use.

Size: ~5 KB · 16 tools

GET /tools-api/{slug}.json example

Per-tool function schema. Drop into OpenAI / Anthropic tool registry directly. Each file declares inputs, outputs, error cases, and prompt-engineering hints.

16 files · ~2 KB each

GET /llms.txt live

AI agent content index in llms.txt spec. Curated list of every calculator, guide, and topic page with descriptions.

Size: ~20 KB · Format: Markdown

Unified Calculate API — one endpoint, 16 calculators

Run any SalaryLabs calculation through one POST endpoint. AI agents do not need to learn 16 different schemas — pass the tool slug + inputs, get a standardized response with citations and provenance.

Request

POST /api/v1/calculate
Content-Type: application/json

{
  "tool": "take-home-pay",
  "inputs": {
    "grossSalary": 85000,
    "filingStatus": "single",
    "stateTaxRate": 5
  }
}

Response

{
  "ok": true,
  "tool": "take-home-pay",
  "outputs": {
    "netAnnual": 64377.5,
    "netMonthly": 5364.79,
    "federalTax": 9870,
    "stateTax": 4250,
    "fica": 6502.5,
    "effectiveTaxRate": 0.2426
  },
  "citations": [
    "https://salarylabs.site/tools/take-home-pay/"
  ],
  "provenance": {
    "publisher": "SalaryLabs",
    "primarySources": [
      "IRS Revenue Procedure 2025-32",
      "SSA Contribution and Benefit Base 2026"
    ]
  }
}

Available tools (6 with full server-side calc, 10 more via static JSON): take-home-pay, tax-estimator, salary-calculator, hourly-to-salary, salary-to-hourly, overtime-calculator. Backed by the same math as our static calculators — IRS Rev. Proc. 2025-32, SSA wage base 2026, BLS data.

Model Context Protocol (MCP) server

MCP is Anthropic's standard for connecting Claude and other AI agents to external data sources. Our MCP server lets Claude call SalaryLabs calculators natively — no custom integration code, no API key, no per-request configuration.

What MCP enables

  • Claude can run SalaryLabs calculations mid-conversation
  • No OpenAPI import — automatic tool discovery
  • Citations automatically included in Claude's answer
  • Works in Claude.ai, Claude Code, Claude Desktop
  • Local stdio transport — your data never leaves your machine
  • npm package — bundled for transparency & self-hosting

Install & configure

# 1. Install (when published)
npm install -g @salarylabs/mcp-server

# 2. Configure in claude_desktop_config.json:
{
  "mcpServers": {
    "salarylabs": {
      "command": "salarylabs-mcp",
      "args": ["--api", "https://salarylabs.site"]
    }
  }
}

# 3. Restart Claude Desktop

# 4. Claude now has access to:
#    • salarylab_take_home_pay
#    • salarylab_tax_estimator
#    • salarylab_salary_calculator
#    • salarylab_hourly_to_salary
#    • salarylab_salary_to_hourly
#    • salarylab_overtime_calculator

First-mover advantage: SalaryLabs is among the first US salary/finance data sources to ship an MCP server. Submit to Anthropic's MCP directory for visibility. Source bundled with the npm package (@salarylabs/mcp-server) — fully transparent.

Embed SDK — drop-in calculator for any site

One <script> tag, zero dependencies. The SalaryLabs Embed SDK turns any page into an interactive salary / tax calculator with full citation back to the source URL. Use it freely on internal tools, dashboards, or partner sites.

Quick start

<div data-salarylabs-tool="take-home-pay"></div>
<script src="https://salarylabs.site/js/salarylab-embed.js" defer></script>

5.4 KB minified · script auto-injects companion CSS · attribution footer always rendered

What you get

  • Working calculator (no iframe, no build step)
  • Runs in user's browser (zero backend load)
  • Calculates from IRS Pub 15-T, BLS OEWS, SSA wage base
  • Visible "by SalaryLabs" attribution + canonical link (required)
  • Schema.org WebApplication JSON-LD with publisher
  • Tracks impressions + calculates via SL.track()

Attribution policy (strict, non-removable): Every embed MUST display the visible "by SalaryLabs" credit, a clickable link to the canonical SalaryLabs URL, and a Schema.org publisher credit. The attribution is rendered as DOM (not just CSS), so it survives host-site CSS overrides. This is required by the SalaryLabs distribution model — every embed generates a passive backlink that fuels the salary data infrastructure (IRS/BLS/SSA auto-fetch Worker, citation graph, MCP server, AI agents). For full policy, see salarylabs.site/methodology/attribution/.

Reusable packages

Two published packages — npm for JavaScript / TypeScript projects, PyPI for Python projects. All formulas in JavaScript match the Python implementation character-for-character. Source code is bundled in the npm package — audit, modify, and self-host freely.

npm package: @salarylabs/calculator

JavaScript / TypeScript package with all 16 calculators. Zero dependencies. Works in Node.js, Deno, Bun, browsers. Tree-shakeable imports. Same math as salarylabs.site — IRS Rev. Proc. 2025-32 brackets, SSA wage base.

npm install @salarylabs/calculator

import { takeHomePay } from '@salarylabs/calculator';
const result = takeHomePay({
  grossSalary: 85000,
  filingStatus: 'single',
  stateTaxRate: 5,
  retirement401kPct: 6
});
console.log(result.netAnnual); // $61,407

Bundle: ~6 KB minified · TypeScript types · License: MIT

PyPI package: salarylab

Python package — same 16 calculators as the npm version. Use in Jupyter notebooks, Django apps, data pipelines, or salary research scripts.

pip install salarylab

from salarylab import take_home_pay
result = take_home_pay(
    gross_salary=85000,
    filing_status='single',
    state_tax_rate=5,
    retirement_401k_pct=6
)
print(result.net_annual)  # 61,407

Python 3.8+ · License: MIT · Zero dependencies

Plugins & browser extensions

Three planned integrations that put SalaryLabs data where you work.

VS Code extension

Insert salary & tax citations into Markdown docs, blog posts, or salary negotiation briefs. Auto-completes BLS OEWS occupation codes.

Status: planned · License: MIT · VS Code Marketplace

Chrome extension

Overlay a live take-home calculator on any salary page — Glassdoor, Levels.fyi, LinkedIn salary ranges.

Status: planned · License: MIT · Chrome Web Store

Dev.to / Hashnode cross-poster

Auto-link SalaryLabs citations in technical articles. Paste a BLS occupation code → get the canonical SalaryLabs URL.

Status: planned · License: MIT · npm package

Build something with SalaryLabs data

Got an integration idea, plugin concept, or use case we have not covered? We would love to hear it.