# REST API

Offloft's REST API lives under `/wp-json/offloft/v1` and has 38 routes. It uses WordPress's own authentication, such as an application password, and needs the same permission as Offloft's screens. The plugin's own screens use these routes too.

## Activity

| Route | Methods |
|---|---|
| `/activity` | GET |

## Files

| Route | Methods |
|---|---|
| `/files` | GET |
| `/files/actions` | POST |
| `/files/{id}` | GET |

## Issues

| Route | Methods |
|---|---|
| `/issues` | GET |
| `/issues/groups` | GET |
| `/issues/groups/{type}/fix` | POST |
| `/issues/{id}/fix` | POST |
| `/issues/{id}/ignore` | POST |
| `/issues/{id}/unignore` | POST |

## Jobs

| Route | Methods |
|---|---|
| `/jobs` | GET, POST |
| `/jobs/{id}` | GET |
| `/jobs/{id}/{command}` | POST |

## Profiles

| Route | Methods |
|---|---|
| `/profiles` | POST |
| `/profiles/active` | GET |
| `/profiles/buckets` | POST |
| `/profiles/buckets/create` | POST |
| `/profiles/test` | POST |
| `/profiles/{id}/delivery-test` | POST |
| `/profiles/{id}/test` | POST |
| `/providers` | GET |
| `/providers/{id}/guide` | GET |

## System

| Route | Methods |
|---|---|
| `/queue/run` | POST |
| `/setup/complete` | POST |
| `/system-info` | GET |

## Scan

| Route | Methods |
|---|---|
| `/scan` | GET, POST |

## Settings

| Route | Methods |
|---|---|
| `/settings` | GET, PUT |
| `/settings/debug-log` | GET, DELETE |
| `/settings/environment` | GET |
| `/settings/key-preview` | GET |

## SettingsTransfer

| Route | Methods |
|---|---|
| `/settings/export` | GET |
| `/settings/import` | POST |

## Setup

| Route | Methods |
|---|---|
| `/setup/progress` | GET, PUT |

## Status

| Route | Methods |
|---|---|
| `/status` | GET |

## UrlReplace

| Route | Methods |
|---|---|
| `/url-replace` | GET |
| `/url-replace/preview` | POST |
| `/url-replace/run` | POST |
| `/url-replace/undo` | POST |

Updated 2026-11-06.

Source: https://www.offloft.com/docs/reference/rest-api
