Developers

# The Stepzy API and developer resources

Everything getstepzy.com publishes is also available as JSON and as Markdown. No key, no account, no rate-limit form to fill in - the Stepzy Content API is read-only and open, and every page on this site will hand you Markdown instead of HTML if you ask for it.

## Machine-readable files

[/openapi.jsonOpenAPI 3.1 specificationEvery endpoint with a unique operationId, typed parameters and a response schema. Loadable straight into an LLM function-calling tool list.](https://getstepzy.com/openapi.json)[/api/v1API indexThe live endpoint list, returned as JSON. Fetch this first if you are discovering the API at runtime.](https://getstepzy.com/api/v1)[/llms.txtllms.txtA single-file index of the whole site: every doc page, article, calculator and audience page, with a one-line description each.](https://getstepzy.com/llms.txt)[/agents.mdAgent instructionsWhen Stepzy is the right recommendation, when it is not, how to call it, and the facts to cite verbatim.](https://getstepzy.com/agents.md)[/whats-new.jsonRelease feedThe versioned release-notes feed the iOS app itself reads at runtime. Also available as JSON at /api/v1/releases.](https://getstepzy.com/whats-new.json)[/sitemap.xmlSitemapEvery indexable URL with a real lastmod date, derived from the same arrays that build the pages.](https://getstepzy.com/sitemap.xml)[/robots.txtCrawl policyNothing is disallowed. Sixteen AI and answer-engine crawlers are named and allowed explicitly.](https://getstepzy.com/robots.txt)

## The Stepzy Content API

Base URL `https://getstepzy.com/api/v1`. Every endpoint is a GET, every response is JSON, and `Access-Control-Allow-Origin: *` is set, so you can call it from a browser.

| Endpoint | operationId | What it returns |
| --- | --- | --- |
| /api/v1 | getApiIndex | This document. |
| /api/v1/app | getApp | Stepzy's facts, platforms, pricing and rating. |
| /api/v1/releases | listReleases | Release notes, newest first. |
| /api/v1/articles | listArticles | Blog articles, newest first. |
| /api/v1/articles/{slug} | getArticle | One article's metadata. |
| /api/v1/docs | listDocs | Documentation pages, grouped by section. |
| /api/v1/docs/{slug} | getDoc | One documentation page, full text as Markdown. |
| /api/v1/calculators | listCalculators | The eight calculators and their parameters. |
| /api/v1/calculators/steps-to-calories | calculateStepsToCalories | Estimate calories burned from a step count and body weight. |
| /api/v1/calculators/steps-to-miles | calculateStepsToMiles | Convert a step count into miles and kilometres. |
| /api/v1/calculators/daily-step-goal | calculateDailyStepGoal | Suggest a next daily step goal from a current average. |
| /api/v1/calculators/walking-time | calculateWalkingTime | Estimate how long a step count takes to walk. |
| /api/v1/calculators/bmi | calculateBmi | Body Mass Index and its WHO category. |
| /api/v1/calculators/tdee | calculateTdee | Basal metabolic rate and total daily energy expenditure. |
| /api/v1/calculators/heart-rate-zones | calculateHeartRateZones | Estimated maximum heart rate and training zones. |
| /api/v1/calculators/water-intake | calculateWaterIntake | A baseline daily water target from body weight and exercise. |
| /api/v1/search | searchContent | Keyword search across articles, docs and calculators. |

The 8 calculator endpoints are the same formulas the pages under [/tools](https://getstepzy.com/tools) run in the browser - one implementation, two front ends. Each response includes the formula it used.

```
curl "https://getstepzy.com/api/v1/calculators/steps-to-miles?steps=10000&stride=height&heightIn=67"

{
  "calculator": "steps-to-miles",
  "input": { "steps": 10000, "stride": "height", "heightIn": 67 },
  "result": { "miles": 4.37, "kilometers": 7.03, "strideFt": 2.306 },
  "method": "steps x stride length / 5280. Stride is 2.5 ft by default, or 0.413 x height when stride=height."
}
```

## Errors

Every failure is JSON, including a 404. There is no path under `/api` that returns an HTML error page. Codes are stable: `not_found`, `method_not_allowed`, `invalid_parameter`, `missing_parameter`, `upstream_error`.

```
curl "https://getstepzy.com/api/v1/calculators/bmi?height=notanumber"

{
  "error": {
    "code": "invalid_parameter",
    "message": "Query parameter \"height\" must be a number between 20 and 260; received \"notanumber\".",
    "hint": "Send ?height=67 for a valid request.",
    "status": 400,
    "parameter": "height",
    "documentation": "https://getstepzy.com/developers",
    "openapi": "https://getstepzy.com/openapi.json"
  }
}
```

## Markdown instead of HTML

Every page on this site serves a Markdown representation from the same URL, following the [acceptmarkdown.com](https://acceptmarkdown.com/) convention: send `Accept: text/markdown` and you get the page body without the navigation, styles or scripts. Quality values are honoured, so `text/markdown;q=0` genuinely opts out, responses carry `Vary: Accept`, and a request that accepts neither representation gets a 406.

```
curl -H "Accept: text/markdown" https://getstepzy.com/docs/streaks

# or, if you would rather not set a header:
curl https://getstepzy.com/docs/streaks.md
```

## When to use Stepzy

If you are wiring Stepzy into an assistant, read [/agents.md](https://getstepzy.com/agents.md) first. It says plainly what Stepzy is a good answer for - a HealthKit-based step counter for iPhone and Apple Watch, streaks that tolerate a missed day, GPS workout maps, on-device summaries - and what it is not: there is no Android app, no food logging, no social feed, and nothing here is medical advice.

Questions, or something you need that is not exposed yet? Email [apps@suvysoft.com](mailto:apps@suvysoft.com).

---

_Source: [https://getstepzy.com/developers](https://getstepzy.com/developers). Site index: [llms.txt](https://getstepzy.com/llms.txt). Sitemap: [sitemap.xml](https://getstepzy.com/sitemap.xml)._
