---
title: "Check whether the visual editor will work on a URL"
url: https://docs.gleap.ai/en/reference/rest-api/precheck
method: POST
path: "/engagement/editor/precheck"
api: "API Reference"
tag: "Engagement Editor"
operationId: "Precheck"
updatedAt: "2026-11-01T18:40:15.677Z"
language: en
---

# Check whether the visual editor will work on a URL

`POST https://api.gleap.io/v3/engagement/editor/precheck`

Server-side precheck for the tooltip / product-tour editor. Fetches the given URL (SSRF-guarded) and reports blockers (COOP, CSP frame-src, login/cross-origin redirect, invalid URL) so the dashboard can give the user actionable feedback instead of opening a blank editor.

## Authorization

- `Authorization` (header, required): `Bearer <token>`

## Headers

- `project` (string, required)

## Request body (`application/json`, required)

- `url` (string, required)
- `engagementType` (enum<string>): Reserved. Currently ignored; the precheck result does not depend on the engagement type. One of: `tooltips`, `producttours`.
- `headers` (object[]): Extra request headers to send when fetching the URL, for pages behind basic auth or a preview/bypass token. Malformed or transport-level headers are dropped server-side.
  - `key` (string, required)
  - `value` (string, required)

## Example request

```bash
curl --request POST \
  --url https://api.gleap.io/v3/engagement/editor/precheck \
  --header 'Authorization: Bearer <token>' \
  --header 'project: <project>' \
  --header 'Content-Type: application/json' \
  --data '{
  "url": "<url>",
  "engagementType": "tooltips"
}'
```

## Responses

### 200 (`application/json`)

Ok

- `ok` (boolean, required)
- `reachable` (boolean, required)
- `finalUrl` (string, required)
- `blockers` (object[], required)
  - `code` (string, required)
  - `message` (string, required)
  - `fix` (string, required)
  - `docUrl` (string)
- `warnings` (object[], required)
  - `code` (string, required)
  - `message` (string, required)
  - `fix` (string, required)
  - `docUrl` (string)

```json
{
  "ok": true,
  "reachable": true,
  "finalUrl": "string",
  "blockers": [
    {
      "code": "string",
      "message": "string",
      "fix": "string",
      "docUrl": "string"
    }
  ],
  "warnings": [
    {
      "code": "string",
      "message": "string",
      "fix": "string",
      "docUrl": "string"
    }
  ]
}
```
