# REST operations

<!-- Generated by `pnpm docs:reference`. Do not edit this file; change the code it is read from. -->

SleekRank serves these operations under `/wp-json`. Each is declared, with its description, in the TypeSpec source of `contracts/api/sleek-rank/openapi.json`.

## PageGroups

### `PageGroups_create`

`POST /sleek-rank/v1/page-group`, requires `manage_options`.

Creates a page group, published unless the body says draft; without a base page it takes the site's first page.

### `PageGroups_items`

`GET /sleek-rank/v1/page-group/{id}/items`, requires `manage_options`.

The rows a page group's data sources have cached, each with its slug, its path and an admin preview URL. Without a query it answers every row as a list; with `page` and `per_page` (at most 100), a `search` over slugs and values or an exact `slug`, it answers that page as `items` with the matching `total`.

### `PageGroups_list`

`GET /sleek-rank/v1/page-group`, requires `manage_options`.

Every page group with its configuration, newest first, up to 100.

### `PageGroups_read`

`GET /sleek-rank/v1/page-group/{id}`, requires `manage_options`.

One page group with its configuration.

### `PageGroups_reload`

`POST /sleek-rank/v1/page-group/{id}/reload`, requires `manage_options`.

Fetches every data source of a page group again and replaces its cached rows, answering the row count and, as `duplicates`, how many rows were skipped because an earlier row has the same slug; the first failing source stops it with 502.

### `PageGroups_remove`

`DELETE /sleek-rank/v1/page-group/{id}`, requires `manage_options`.

Deletes a page group; its base page stays.

### `PageGroups_update`

`PATCH /sleek-rank/v1/page-group/{id}`, requires `manage_options`.

Saves the fields the body carries; a URL pattern needs exactly one `{slug}` placeholder.

## SettingsOperations

### `SettingsOperations_checkApi`

`POST /sleek-rank/v1/settings/check-api`, requires `manage_options`.

Checks a Google Sheets API key or a Notion token with its provider, without storing it.

### `SettingsOperations_read`

`GET /sleek-rank/v1/settings`, requires `manage_options`.

Whether each data-source credential is stored: `googleSheetsApiKey` and `notionToken`, as booleans; the credentials themselves are never answered.

### `SettingsOperations_save`

`PATCH /sleek-rank/v1/settings`, requires `manage_options`.

Stores the Google Sheets API key or the Notion token the body carries; other fields are ignored.
