> Content index: https://quillly.com/docs/llms.txt
> Canonical page: https://quillly.com/docs/deploy-hook

---
title: Deploy Hook: Keep Tracked Pages Fresh in Quillly
description: Ping Quillly's deploy hook when you ship, and it re-fetches your sitemap and re-checks tracked pages immediately. Endpoint reference, curl, and CI examples.
keywords: quillly deploy hook, deploy hook, tracked pages, re-check pages, CI deploy webhook
published: 2026-07-11
updated: 2026-07-26
url: https://quillly.com/docs/deploy-hook
word_count: 545
---

# Deploy hook: keep tracked pages fresh

> Ping Quillly's deploy hook when you ship, and it re-fetches your sitemap and re-checks tracked pages immediately. Endpoint reference, curl, and CI examples.

Canonical: https://quillly.com/docs/deploy-hook
Published: 2026-07-11

Quillly tracks the pages you already own — pricing, features, landing pages — and re-checks them for SEO issues and content changes on a schedule. The **deploy hook** lets you skip the wait: ping it the moment your site redeploys and Quillly re-fetches your sitemap and re-checks every tracked page right away.

## What the deploy hook does

Your CI knows exactly when your content changed; Quillly does not have to guess. When you call the hook, Quillly re-fetches your tracked-page sitemap, discovers new or removed URLs, and re-checks existing pages — prioritizing a content-hash probe so genuinely changed pages are caught first. The work runs in the background, so the request returns immediately.

![Deploy hook flow: a CI deploy triggers a ping, then Quillly re-fetches the sitemap and re-checks tracked pages](https://quillly.com/serve/v1/019c64a2-a62f-7793-aa68-2c78316d3309/images/85466f05f109fdd1a5a7eb5d26ff38b6fa059af5.webp)

## Endpoint reference

**Method and URL**

```
POST https://quillly.com/api/ping/pages/<websiteId>
```

**Authentication** — use your site's verification token, either way:

- Query: `?token=<token>`

- Header: `Authorization: Bearer <token>`

A signed-in owner can also trigger it from the dashboard's "Re-check now" button.

**Parameters**

- `delay` — seconds to wait before running the re-check, `0`–`1800` (default `0`). Use it to line the re-check up with your CDN propagation instead of running instantly.

- `recheck` — default `true`. If a run finds no changes yet, Quillly automatically re-checks again at **+5** and **+15 minutes**, so a slow cache still gets caught.

**Cooldown** — one re-check per site per **120 seconds**. A chattier caller gets `429`.

**Response codes**

- `202 Accepted` — queued:

```json
{ "success": true, "data": { "queued": 2, "message": "Re-check queued — tracked pages will re-sync in the background." } }
```

- `200 OK` — no page endpoints configured: `{ "success": true, "data": { "queued": 0, "message": "No page endpoints with a sitemap are configured for this website." } }`

- `429 Too Many Requests` — within the cooldown: `{ "success": false, "error": { "code": "RATE_LIMITED", "message": "Re-check already queued recently. Try again in up to 120s." } }`

- `401` invalid token, `403` service inactive, `404` unknown website.

## Examples

**curl**

```bash
curl -X POST \
  "https://quillly.com/api/ping/pages/<websiteId>?delay=120" \
  -H "Authorization: Bearer <token>"
```

**GitHub Actions** — add a final step after your deploy job:

```yaml
- name: Ping Quillly deploy hook
  run: |
    curl -fsS -X POST \
      "https://quillly.com/api/ping/pages/${{ secrets.QUILLLY_WEBSITE_ID }}?delay=120" \
      -H "Authorization: Bearer ${{ secrets.QUILLLY_DEPLOY_TOKEN }}"
```

**Generic post-deploy script**

```bash
#!/usr/bin/env bash
set -euo pipefail
curl -fsS -X POST \
  "https://quillly.com/api/ping/pages/${QUILLLY_WEBSITE_ID}?delay=90&recheck=true" \
  -H "Authorization: Bearer ${QUILLLY_DEPLOY_TOKEN}"
```

## Choosing a delay

Set `delay` to roughly your deploy-plus-CDN-propagation time — the gap between "CI finished" and "the new HTML is actually live at the edge." If your pages serve in seconds, `delay=0` is fine; if a CDN takes a minute or two to purge, `delay=90` or `delay=120` avoids re-checking stale HTML. You do not need to be precise: with `recheck` on, the automatic +5 and +15 minute passes catch anything that was not live yet. Just stay under the 120-second cooldown — one ping per deploy is all you need.

To see what counts as a tracked page and how endpoints are served, read [Content types & endpoints](/docs/content-types). New to Quillly? Start with [Getting started with Quillly](/docs/getting-started).
