Early preview

The HTTP APIs and endpoints described here may change while we gather feedback. If something is unclear or you need a capability that is missing, email [email protected].

API reference

Webhooks

Scribbles can POST a small JSON event to URLs you configure when published posts or pages change. Use this to trigger static site rebuilds or any automation that accepts an HTTP POST.

Note: Configure webhook URLs under Publishing → Feeds → Actions for each blog. The payload is metadata only; pull full content from the JSON API if you need bodies.

Setup

  1. Open Publishing → Feeds → Actions for your blog.
  2. Paste one webhook URL per line (HTTPS recommended). Deploy-hook URLs that ignore the body work fine.
  3. Save actions. The next publish, update, unpublish, or delete of live content will enqueue delivery.

Events

Delivered asynchronously. Drafts, future-scheduled posts, and komments-only updates do not fire webhooks.

Event When
post.published A post or page becomes live (create or draft → published)
post.updated A live post or page is saved again
post.unpublished A live post or page is moved back to draft
post.deleted A live post or page is destroyed

Payload

Requests use Content-Type: application/json and User-Agent: Scribbles-Webhooks/1.0.

Example body

{
  "event": "post.published",
  "occurred_at": "2026-07-19T17:00:00Z",
  "blog": {
    "id": 1,
    "slug": "vincent",
    "title": "Vincent"
  },
  "post": {
    "id": 42,
    "slug": "hello",
    "title": "Hello",
    "type": "post",
    "url": "https://example.com/post/hello",
    "published_at": "2026-07-19T17:00:00Z",
    "updated_at": "2026-07-19T17:00:00Z"
  }
}

Deploy hooks

Paste a Netlify, Vercel, or Cloudflare Pages deploy hook into the Webhooks field. Those endpoints typically ignore the JSON body and start a build on any POST. In the build, fetch posts with the JSON API using an API key stored as a secret in CI.

Fetch published posts in CI

curl -s "https://scribbles.page/api/v1/posts?status=published&include_content=true&limit=100" \
  -H "Authorization: Bearer YOUR_API_KEY"