API
Most creators never touch the API directly โ the MCP server gives your IDE agent full access to your blog, and that's usually all you need.
But the REST API is there, and your IDE will use it when it needs to โ we've seen Claude and Cursor reach for it directly more than once. It's also the right choice for scripts, CI/CD pipelines, and programmatic publishing.
https://scsiwyg.com/apiAuthentication
Write endpoints require a Bearer token in the Authorization header. Get your token from the account page. Read endpoints are public โ no auth required.
Authorization: Bearer YOUR_TOKEN_HEREPost format
{
"slug": "my-post-slug",
"title": "Post Title",
"body": "# Markdown\n\nFull markdown body.",
"tags": ["tag1", "tag2"],
"visibility": "public",
"images": [
{
"id": "img1",
"name": "photo.jpg",
"data": "data:image/jpeg;base64,..."
}
]
}slugโ URL-safe identifier, unique per blogbodyโ Markdown (GFM supported)visibilityโpublicorjournal(subscriber-only)imagesโ base64 data URIs, self-contained in the JSONdateโ ISO 8601, defaults to now. Use for backdating.draft: trueโ saves without publishing
Endpoints
/api/sitesPlatform directory โ all public sites. No auth.
curl https://scsiwyg.com/api/sites/api/sitesCreate a new blog. Auth required.
curl -X POST https://scsiwyg.com/api/sites \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"username": "myname", "title": "My Blog"}'/api/{username}Site info and published posts. Public.
curl https://scsiwyg.com/api/myname/api/{username}Update blog settings โ title, bio, theme, newsletter, community mode. Auth required.
curl -X PATCH https://scsiwyg.com/api/myname \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"theme":"ocean","themeOverrides":{"link":"#ff6600"}}'/api/{username}/postsList published posts. Public.
curl https://scsiwyg.com/api/myname/posts/api/{username}/postsPublish a new post. Auth required. Publishes immediately unless draft: true. Set isNewsletter: true for newsletter posts.
curl -X POST https://scsiwyg.com/api/myname/posts \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"slug":"hello","title":"Hello","body":"# Hi","visibility":"public"}'/api/{username}/posts/{slug}Get a single post with full body. Public.
curl https://scsiwyg.com/api/myname/posts/hello/api/{username}/posts/{slug}Update a post. Send only changed fields. Auth required.
curl -X PUT https://scsiwyg.com/api/myname/posts/hello \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"title": "Updated title"}'/api/{username}/posts/{slug}Permanently delete a post. Auth required.
curl -X DELETE https://scsiwyg.com/api/myname/posts/hello \
-H "Authorization: Bearer $TOKEN"/api/{username}/posts/{slug}/viewTrack a post view. Public. Deduplicates by visitor within 24 hours.
curl -X POST https://scsiwyg.com/api/myname/posts/hello/view/api/{username}/contributorsList contributors for a blog. Shows community mode status. Public.
curl https://scsiwyg.com/api/myname/contributors/api/{username}/contributorsAdd a contributor by email. Auth required, site owner only.
curl -X POST https://scsiwyg.com/api/myname/contributors \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"email": "collaborator@example.com"}'/api/subscribersSubscribe an email to a site newsletter. Public. Rate limited 10/hour.
curl -X POST https://scsiwyg.com/api/subscribers \
-H "Content-Type: application/json" \
-d '{"email":"reader@example.com","siteId":"SITE_ID"}'/api/subscribersList subscribers for a site. Auth required (site owner).
curl "https://scsiwyg.com/api/subscribers?username=myname" \
-H "Authorization: Bearer $TOKEN"/api/newsletter/send-statusPoll newsletter send status. Auth required. For IDE polling after initiation.
curl "https://scsiwyg.com/api/newsletter/send-status?slug=hello" \
-H "Authorization: Bearer $TOKEN"/api/analyticsSite analytics โ views, top posts, referrers, daily trends. Pro plan, session auth.
curl https://scsiwyg.com/api/analytics?days=30/api/openapi.jsonOpenAPI 3.1 spec โ machine-readable, for AI tools and Swagger UI.
curl https://scsiwyg.com/api/openapi.json