Skip to content

Strength Standards API & Widgets

Free JSON API and embeddable widgets serving verified competition and self-reported gym percentiles as separate, labeled populations.

← All Strength Standards

FitnessVolt Strength Standards API (FVSS)

The FitnessVolt Strength Standards API serves verified competition percentiles and self-reported gym percentiles as separate, labeled populations.

FVSS v1 is a free, versioned, read-only, CORS-enabled JSON API. No key, no signup. It serves two populations and keeps them strictly separate: verified percentiles built from over 2.5 million processed OpenPowerlifting competition results (squat, bench press, deadlift; Raw), and gym percentiles from the Symmetric Strength self-reported dataset. The two are never blended into a composite, and every response labels its source and sample size.

Base URL: https://fitnessvolt.com/wp-json/fvss/v1 · API version 1.0.0 · data snapshot 2026-06-09 · OpenAPI 3.0 document · methodology

Endpoints

Five endpoints, versioned under fvss/v1. Every standards and percentile response carries source, source_label, sample sizes, unit, methodology_url, attribution, api_version, and data_version.

GET /standards

Capability document: supported lifts per source, sexes, units, formats, age brackets (gym only), versions, rate limits, and the attribution contract.

curl

GET /standards/{lift}

Standards for one lift from ONE explicit source. source is required and never defaulted: there is no blending and no composite. format=table lists every stored weight class; format=summary (needs bodyweight) returns the closest cohort; format=curve (verified only) returns the 18-bin distribution.

lift
Path segment. verified: squat, bench-press, deadlift. gym: the stored Symmetric Strength slugs listed by GET /standards.
sex
Required. male | female.
source
Required. verified | gym. Never defaulted, never blended.
bodyweight
Required for format=summary and format=curve. In the requested unit.
unit
lb | kg. Default lb.
format
summary | table | curve. Default summary.
curl

POST /percentile

Dual percentile for one set: the verified competition percentile (SBD lifts) and the self-reported gym percentile (supported lifts), each with its own tier and sample size, never merged. reps > 1 estimates the 1RM server-side with the same five-formula average the on-site calculators use, flagged e1rm_is_estimated.

lift
Required. Lift slug.
weight
Required. Weight lifted, in unit.
reps
1-12. Default 1.
bodyweight
Required. In unit.
sex
Required. male | female.
unit
lb | kg. Default lb.
age
Optional, 10-90. Refines the gym cohort.
curl

GET /fvcp/{lift}

The FVCP (FitnessVolt Competition Percentile) namespace: verified OpenPowerlifting SBD competition data ONLY (squat, bench-press, deadlift; Raw). Full percentile tables for every stored weight class, both sexes. Any other lift returns an honest 404.

lift
Path segment. squat | bench-press | deadlift.
unit
lb | kg. Default lb.
curl

GET /openapi

The machine-readable OpenAPI 3.0 document for this namespace. Point your client generator or LLM tool-use schema at it.

curl

Code Samples

JavaScript (fetch)

JS

PHP (wp_remote_get)

PHP

Python (requests)

Python

Rate Limits & Caching

  • 60 requests per 60 seconds, per IP, per endpoint group. Exceeding it returns HTTP 429 with a Retry-After header.
  • GET responses send Cache-Control: public, max-age=3600. Cache on your side; the underlying percentile tables change only when the data snapshot is rebuilt (current snapshot: 2026-06-09).
  • All endpoints send Access-Control-Allow-Origin: *, so they are callable from any origin, browser or server.
  • Cohorts under 30 samples are omitted rather than served with an unreliable percentile.
  • Need more than the per-IP limit? See the attribution tiers below.

Attribution & Licensing

Every response carries an attribution object with ready-made text and HTML. Three tiers:

Tier Who it is for Terms
Free Any site, app, tool, or article within the per-IP rate limit. Keep a visible attribution link ("Powered by FitnessVolt Strength Standards" or the attribution.html from the response) wherever the data is shown. The embeddable widgets satisfy this automatically.
Registered high-volume Projects that need sustained traffic above the per-IP limit. Free with the same visible attribution; contact us so we can allowlist your usage instead of rate limiting it.
Commercial, no attribution Commercial products that cannot show the link. By arrangement only. Contact FitnessVolt via the contact page.

Cite the underlying sources where relevant: the OpenPowerlifting dataset (verified competition results) and the Symmetric Strength dataset (self-reported gym lifts). Citation formats live on the open data hub.

Embeddable Widgets (live)

Three copy-paste widgets, one script tag. Vanilla JS, no framework, no build step, styles fully scoped so they cannot fight your page. The script derives the API base from its own URL, so the same snippet works on any site. Each widget renders the required "Powered by FitnessVolt Strength Standards" link and labels every number with its population and sample size. The widgets below are LIVE, served by the same snippet you would paste.

1. Standards table

One lift, one source, every stored weight class. Configure with data-lift, data-sex (male | female), data-source (verified | gym), data-unit (lb | kg).

HTML

Live:

2. Mini percentile calculator

Weight, reps, bodyweight, sex in; both labeled percentiles out, with a link to the full FitnessVolt result page. Configure with data-lift and data-unit.

HTML

Live:

3. Free program CTA

Maxes in, deep link out to the free FitnessVolt program generator (the maxes travel as URL parameters; nothing is written to our API). Configure with data-program (a program slug from /rpe-training/programs/), data-unit, and optional data-heading.

HTML

Live:

The attribution link is part of the free license and is not configurable. Include the script once per page; it initializes every .fvss-widget mount it finds (SPA hosts can call window.FVSSWidgets.init() after injecting new mounts).

Version & Changelog

The namespace is versioned (fvss/v1). Breaking changes ship as a new namespace; fvss/v1 stays stable. Additive fields may appear without notice, so parse responses tolerantly.

Date API Change
2026-06-09 1.0.0 Initial public release: capability document, per-lift standards (summary, table, curve), dual percentile, verified-only FVCP namespace, OpenAPI document, embeddable widgets v1. Data snapshot 2026-06-09 (post-remediation OpenPowerlifting percentile table; Symmetric Strength aggregates).

Questions or higher-volume needs: contact FitnessVolt. See also the open data hub and the methodology.