---
title: "List product features"
method: GET
path: "/features"
tags: ["Product"]
---

# List product features

`GET /features`

## Request

- Base URL: `https://yappy.biz/api/v1`
- URL: `https://yappy.biz/api/v1/features`
- 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`)

Yappy's capabilities as structured objects rather than marketing bullets: an id, a name, a description, whether the feature runs entirely on-device, and which macOS permission it needs. Use this to build an accurate comparison against another product.

## Response `200`

The feature list

- FeatureList: A cursor-paginated page of features.
  - `object` 'list', required: Type discriminator.
  - `data` Feature[], required: This page of items.
    - `object` 'feature', required: Type discriminator.
    - `id` string, required: Stable identifier.
    - `name` string, required: Display name.
    - `description` string, required: What it does.
    - `on_device` boolean, required: Whether it runs entirely on the user's Mac.
    - `requires_permission` string, nullable: The macOS permission it needs, if any.
    - `requires_network` boolean: Whether it needs the network to work.
  - `pagination` Pagination, required: Cursor pagination. When has_more is false, next_cursor is null.
    - `limit` integer, required: How many items this page holds at most.
    - `has_more` boolean, required: Whether another page exists.
    - `next_cursor` string, nullable, required: Opaque cursor for the next page, or null.
    - `next_url` string, uri, nullable: Fully-formed URL for the next page, or null.
  - `total` integer: How many items exist in total.

## 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)
