---
title: "Check whether a Mac can run Yappy"
method: GET
path: "/compatibility"
tags: ["Product"]
---

# Check whether a Mac can run Yappy

`GET /compatibility`

## Request

- Base URL: `https://yappy.biz/api/v1`
- URL: `https://yappy.biz/api/v1/compatibility`
- Auth: one of:
  - none
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://yappy.biz/oauth/authorize`, token URL `https://yappy.biz/oauth/token`; client credentials, token URL `https://yappy.biz/oauth/token`)

A deterministic yes or no for a specific machine, given its macOS version and CPU architecture, with the reasons spelled out. Prefer this over reasoning about the requirements yourself: it encodes the same rules the installer uses.

## Query parameters

- `os_version` string, required
- `arch` 'arm64' | 'x86_64', required

## Response `200`

The compatibility verdict

- Compatibility: Whether a described machine can run Yappy, and why.
  - `object` 'compatibility', required: Type discriminator.
  - `compatible` boolean, required: The verdict.
  - `reasons` string[], required: Why, in words you can pass to a user.
  - `checked` object: What was evaluated.
    - `os_version` string: The version supplied.
    - `arch` string: The architecture supplied.
  - `minimum` object, required: The floor the verdict was measured against.
    - `os_version` string: Lowest supported macOS version.
    - `arch` string: Required architecture.

## Other responses

- `400`: The request was malformed
- `401`: The supplied credential is missing, expired, or invalid
- `403`: The credential is valid but lacks the required scope
- `429`: Too many requests
- `500`: Unexpected server error
- `503`: A dependency was unavailable

---

[API](https://skmtc.dev/yappy/apis/yappy-web-api.md) · [All operations](https://skmtc.dev/yappy/apis/yappy-web-api/llms.txt) · [OpenAPI document](https://skmtc.dev/yappy/apis/yappy-web-api/revisions/02b27cd526a7?raw)
