WrytzeWrytze Docs
API Reference

API Reference

Complete reference for the Wrytze Blog REST API.

The Wrytze Blog REST API gives you read-only access to published blog content from your workspace. Use it to display Wrytze-managed blogs on your own website, mobile app, or any other platform.

Base URL

All API requests are made to the following base URL:

https://app.wrytze.com/api/v1

Authentication

Every request must include a valid API key in the X-API-Key header. API keys are scoped to a single organization and can be created from the Wrytze dashboard.

curl https://app.wrytze.com/api/v1/blogs \
  -H "X-API-Key: wrz_sk_abc123..."

See the Authentication guide for details on creating and managing API keys.

Content-Type

All responses are returned as application/json. There is no need to set an Accept header, but you may include Accept: application/json if you prefer to be explicit.

Versioning

The API uses URL-based versioning. The current version is v1, included in every endpoint path:

/api/v1/blogs
/api/v1/categories
/api/v1/tags

Breaking changes will never be introduced to an existing version. If a new version is released, the previous version will continue to work for a minimum of 6 months with a deprecation notice before any changes.

Endpoints

MethodEndpointDescription
GET/blogsList published blogs
GET/blogs/:idGet a blog by ID
GET/blogs/slug/:slugGet a blog by slug
GET/categoriesList categories
GET/tagsList tags

Response Format

Success (list)

List endpoints return an array of resources wrapped in a data field, alongside a pagination object:

{
  "data": [
    { "id": "...", "title": "..." }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 42,
    "pages": 3
  }
}

Success (single resource)

Single-resource endpoints return the resource in a data field:

{
  "data": {
    "id": "...",
    "title": "..."
  }
}

Error

Error responses use a consistent format with an error object containing a human-readable message and HTTP status code:

{
  "error": {
    "message": "Human-readable error description",
    "status": 400
  }
}

See the Errors reference for a full list of error codes.

Caching

All API responses are cached server-side using Redis to ensure fast response times. When a response is served from cache, the response includes an X-Cache: HIT header.

Cache durations vary by endpoint:

EndpointCache TTL
GET /blogs5 minutes
GET /blogs/:id15 minutes
GET /blogs/slug/:slug15 minutes
GET /categories5 minutes
GET /tags5 minutes

Cache is automatically invalidated when content changes in the Wrytze dashboard.

Endpoint Reference

On this page