{"openapi":"3.1.0","info":{"title":"Statistics API","version":"1.0.0","description":"Run statistics on a list of numbers without a spreadsheet or a stats package. The describe endpoint returns a full summary of a dataset — count, sum, min, max, range, mean, median, mode, the first and third quartiles and interquartile range, population and sample variance and standard deviation, coefficient of variation, geometric and harmonic means, skewness and kurtosis. Get any percentile of a dataset, the Pearson correlation coefficient (and r²) between two equal-length series, and a simple linear regression (slope, intercept, r² and the line equation). Input is a raw array of numbers (JSON or a comma-separated list) — no CSV, no headers. Perfect for analytics, A/B test summaries, sensor and metrics data, dashboards and quick exploratory analysis. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 5 endpoints. Distinct from the mathjs expression engine and from CSV per-column summaries.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/stats-api","description":"oanor gateway"}],"tags":[{"name":"Statistics"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/correlation":{"get":{"operationId":"get_v1_correlation","tags":["Statistics"],"summary":"Pearson correlation","description":"","parameters":[{"name":"x","in":"query","required":true,"description":"First series","schema":{"type":"string"},"example":"1,2,3,4,5"},{"name":"y","in":"query","required":true,"description":"Second series (same length)","schema":{"type":"string"},"example":"2,4,6,8,10"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"n":5,"pearson_r":1,"r_squared":1},"meta":{"timestamp":"2026-06-02T16:51:48.820Z","request_id":"4a9c1bbf-03e9-496f-b776-ec5569afb93d"},"status":"ok","message":"Pearson correlation","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/describe":{"get":{"operationId":"get_v1_describe","tags":["Statistics"],"summary":"Descriptive statistics","description":"","parameters":[{"name":"numbers","in":"query","required":true,"description":"JSON array or comma list","schema":{"type":"string"},"example":"2,4,4,4,5,5,7,9"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"q1":4,"q3":5.5,"iqr":1.5,"max":9,"min":2,"sum":40,"mean":5,"mode":4,"count":8,"range":7,"median":4.5,"kurtosis":0.940625,"skewness":0.81848755,"harmonic_mean":4.20175073,"sample_stddev":2.13808994,"geometric_mean":4.6032156,"sample_variance":4.57142857,"population_stddev":2,"population_variance":4,"coefficient_of_variation":0.42761799},"meta":{"timestamp":"2026-06-02T16:51:48.928Z","request_id":"ead2f6c9-1b16-42d0-be10-041398bb95b8"},"status":"ok","message":"Descriptive statistics","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/percentile":{"get":{"operationId":"get_v1_percentile","tags":["Statistics"],"summary":"Percentile of a dataset","description":"","parameters":[{"name":"numbers","in":"query","required":true,"description":"JSON array or comma list","schema":{"type":"string"},"example":"1,2,3,4,5,6,7,8,9,10"},{"name":"p","in":"query","required":true,"description":"Percentile 0-100","schema":{"type":"string"},"example":"90"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"p":90,"count":10,"value":9.1},"meta":{"timestamp":"2026-06-02T16:51:49.035Z","request_id":"175966e6-b1f6-44b0-b9cd-16644e10e564"},"status":"ok","message":"Percentile of a dataset","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/regression":{"get":{"operationId":"get_v1_regression","tags":["Statistics"],"summary":"Linear regression","description":"","parameters":[{"name":"x","in":"query","required":true,"description":"X series","schema":{"type":"string"},"example":"1,2,3,4,5"},{"name":"y","in":"query","required":true,"description":"Y series (same length)","schema":{"type":"string"},"example":"2,4,5,4,5"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"n":5,"slope":0.6,"equation":"y = 0.6x + 2.2","intercept":2.2,"r_squared":0.6},"meta":{"timestamp":"2026-06-02T16:51:49.139Z","request_id":"4452ca73-f667-434d-8781-cfcf14b89839"},"status":"ok","message":"Linear regression","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"Statistics API","notes":"Sample statistics (variance/stddev) need n≥2, skewness n≥3, kurtosis n≥4; geometric/harmonic mean need all-positive values (null otherwise). Operates on raw number arrays, not CSV.","version":"v1","endpoints":[{"path":"/v1/describe","params":{"numbers":"JSON array or comma list (required)"},"returns":"full descriptive summary"},{"path":"/v1/percentile","params":{"p":"0-100 (required)","numbers":"array (required)"},"returns":"the p-th percentile"},{"path":"/v1/correlation","params":{"x":"array (required)","y":"array, same length (required)"},"returns":"Pearson r and r²"},{"path":"/v1/regression","params":{"x":"array (required)","y":"array, same length (required)"},"returns":"slope, intercept, r², equation"},{"path":"/v1/meta","params":[],"returns":"this document"}],"description":"Descriptive and bivariate statistics on raw numeric arrays — mean/median/mode, variance, standard deviation, quartiles, percentiles, skewness, kurtosis, plus Pearson correlation and linear regression between two series. Powered by simple-statistics. Pure local, no key."},"meta":{"timestamp":"2026-06-02T16:51:49.246Z","request_id":"6bca192b-91d0-458f-989a-8286366e7a42"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":1020,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":240,"monthly_call_quota":8700,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2160,"monthly_call_quota":138000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5760,"monthly_call_quota":710000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/stats-api"}