Skip to content

API Overview

https://api.sassmaker.com

All endpoints are prefixed with /v1/.

Two methods are supported. See Authentication for details.

MethodHeaderUse case
API KeyX-Project-Key: pk_...SDK, widgets, public endpoints
Session TokenAuthorization: Bearer <token>Dashboard, CLI, admin operations

All request bodies must be JSON with Content-Type: application/json.

All responses return JSON. Successful responses return the resource or a list:

{ "data": [...], "total": 42, "page": 1, "limit": 20 }

Or for single-resource operations:

{ "ok": true }

Errors return a JSON object with an error field and an appropriate HTTP status code:

{ "error": "Title is required" }

Common status codes:

CodeMeaning
400Bad request (missing or invalid fields)
403Forbidden (not the project owner)
404Resource not found
409Conflict (duplicate entry)
413Payload too large

The API allows cross-origin requests from a fleet allowlist (sassmaker.com, app.sassmaker.com, *.pages.dev, *.workers.dev, localhost). Other origins fall back to https://app.sassmaker.com.

GET /health

Returns { "status": "ok" } if the API is running. No authentication required.

  • API-key routes: per-project sliding-window limit (rate_limit_rpm, default 60/min) enforced in-memory per Worker isolate.
  • Public unauthenticated routes (testimonials submit, roadmap submit/vote): D1-backed sliding-window limit per IP via @saas-maker/shield.

Exceeding either limit returns HTTP 429.

ServicePrefixDocs
Projects/v1/projectsProjects
Feedback/v1/feedbackFeedback
Roadmap/v1/roadmapRoadmap
Waitlist/v1/waitlistWaitlist
Testimonials/v1/testimonialsTestimonials
Changelog/v1/changelogChangelog
Analytics/v1/analyticsAnalytics
Standards/v1/standardsFleet standards (CLI-driven)
Tasks/v1/tasksCockpit tasks
Jobs/v1/jobsCockpit jobs
Secrets/v1/secretsProject secrets
Auth/v1/auth / /v1/cliSessions and CLI auth