Website Content API reference
Reference the Website Content API endpoints, envelopes, content fields, pagination, authentication, and errors.
The Website Content API reads published workspace content for a server-side front end. The feature must be enabled for the workspace.
Base URL and authentication#
Use:
https://api.winglo.aiSend a read-scoped website API key on every request:
Authorization: Bearer wg_live_your_keyIssue and revoke keys in Marketing under Website → Settings → Integrations. A key is shown once. Keep it in a server-side secret store.
Endpoints#
GET /v1/content
GET /v1/content/:type
GET /v1/content/:type/:slugSupported types are blog, docs, case-studies, changelog, and media.
GET /v1/content returns a page for every type. GET /v1/content/:type returns one type. The item endpoint returns one matching record.
Pagination#
Collection endpoints accept:
| Parameter | Rule |
|---|---|
page | Positive page number; default 1 |
limit | Items per type; default 50, maximum 100 |
The all-content endpoint applies the page and limit separately to each collection.
A collection contains type, items, page, limit, total, and hasMore.
Item envelope#
Every item returns:
{
"id": "record-id",
"type": "blog",
"slug": "example",
"title": "Example",
"status": "published",
"publishedAt": "2026-09-08T12:00:00.000Z",
"updatedAt": "2026-09-08T12:00:00.000Z",
"createdAt": "2026-09-08T12:00:00.000Z",
"fields": {}
}Some types have no stored lifecycle, so status or publishedAt can be null.
Type-specific fields#
| Type | Fields |
|---|---|
| Blog | excerpt, author, category, tags, featured, coverImage, contentMdx, seoTitle, seoDescription, ogImage, canonical |
| Docs | summary, section, icon, sortOrder, parentDocId, relatedDocs, contentMdx, seoTitle, seoDescription |
| Case studies | customer, industry, challenge, solution, results, quote, images |
| Changelog | version, entryType, summary, content |
| Media | filename, mimeType, size, altText, folder, url |
Clients must ignore unknown fields so compatible fields can be added later.
Example request#
curl "https://api.winglo.ai/v1/content/docs?page=1&limit=20" \
-H "Authorization: Bearer $WINGLO_CONTENT_KEY"Follow hasMore and increment page. Use the item endpoint when you already know the type and slug.
Errors#
- 401: missing, malformed, revoked, or invalid key
- 402: workspace no longer has API access
- 403: key lacks the read scope
- 404: unknown type or item
- 429: too many requests
Respect Retry-After on a 429 response. Do not retry 401, 402, or 403 until access is corrected.
Cache and key safety#
Cache public content according to your site's needs, but refresh after publication events. Never log the full bearer key. Rotate by deploying a new key first, confirming it works, and then revoking the old key.