Skip to main content

Developer API Overview

Makenot.work provides four APIs for building integrations, desktop applications, and developer tools: session-based (web dashboard), SyncKit JWT (cloud sync and OTA), OAuth2 PKCE (third-party apps), and a public License Key API. This page covers authentication methods, error handling, and rate limits shared across all endpoints.

Authentication Methods

Session Cookies

The primary authentication for the web dashboard. Set via /login, required for all creator-facing endpoints (projects, items, files, analytics). Write operations require a CSRF token in the _csrf form field or X-CSRF-Token header.

Session-authenticated endpoints are designed for the HTMX frontend. When called without the HX-Request header, they return JSON instead of HTML fragments.

SyncKit JWT

Used by SyncKit cloud sync and OTA updates. Obtain a token via POST /api/sync/auth (email + password + API key) or the OAuth2 PKCE flow. Pass it as Authorization: Bearer <token>. Tokens expire after 7 days.

No Authentication

Public endpoints that require no auth:

Error Format

All API errors return JSON:

{
  "error": "Description of what went wrong"
}
StatusMeaning
400Invalid request body or parameters
401Missing or invalid authentication
403Insufficient permissions
404Resource not found
413File too large
422Validation error
429Rate limit exceeded
500Internal error

Internal errors return a generic message; no stack traces or database details are exposed.

Rate Limits

All rate limits are per IP. Check response headers (X-RateLimit-Limit, X-RateLimit-Remaining) for current values. Current limits (subject to change):

CategoryBurstSustainedEndpoints
Authentication52/secLogin, join, OAuth authorize
OAuth token exchange102/secToken endpoint
2FA verification52/secTOTP, passkey verification
License key validation205/secValidate, activate, deactivate
API reads6010/secGET endpoints
API writes302/secPOST/PUT/DELETE endpoints
Data export31/secExport endpoints
File uploads102/secPresign + confirm
SyncKit auth51/secSync auth endpoint
SyncKit sync3010/secPush, pull, blobs
OTA check3010/secUpdate check endpoint
OTA publish102/secArtifact upload

Exceeding a limit returns HTTP 429. Implement exponential backoff in your client.

API Reference