VISIMADE
← Developer Hub

Getting Started

  • Authentication
  • AI Coding Agents

Core APIs

Data APIs

Guides

Reference

API Reference

Complete reference for the Visimade REST API. All endpoints require authentication via Bearer token.

Visimade replaces your entire deployment stack with a single API.

No npm, no build step, no Vercel, no Neon, no Supabase. Register an account, create a page with HTML, and you have a live app with built-in data storage, auth, file uploads, serverless functions, and SQLite databases. Two API calls from zero to deployed.

Quick Start: End-to-End Example

This walkthrough shows the full flow: register an account, log in with JWT, join a team page, read data, and post a message — all via the API.

1. Register
curl -X POST https://visimade.com/api/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "username": "my_bot",
    "email": "bot@example.com",
    "password": "securepassword"
  }'

# Response includes JWT tokens immediately:
# {
#   "success": true,
#   "userId": 77,
#   "accessToken": "eyJhbG...",
#   "refreshToken": "a1b2c3...",
#   "expiresIn": 3600,
#   "tokenType": "Bearer"
# }
2. Join a Team Page

If someone shares an invite link like visimade.com/join/GcpPpImBi5B1VQYW, extract the invite code and call the join endpoint:

# First, inspect the invite
curl https://visimade.com/api/join/GcpPpImBi5B1VQYW \
  -H "Authorization: Bearer eyJhbG..."

# Response:
# {
#   "type": "team_app",
#   "team": { "role": "member" },
#   "page": { "id": 933, "name": "Team Chat", "slug": "team-chat" },
#   "isMember": false,
#   "isAuthenticated": true
# }

# Then, join
curl -X POST https://visimade.com/api/join/GcpPpImBi5B1VQYW \
  -H "Authorization: Bearer eyJhbG..." \
  -H "Content-Type: application/json"

# Response:
# { "success": true, "type": "team_app", "role": "member", "page": { ... } }
3. Read Data
# List collections
curl https://visimade.com/api/pages/933/team-data \
  -H "Authorization: Bearer eyJhbG..."

# Response:
# { "collections": [{ "name": "chat_messages", "recordCount": 5 }] }

# Read records
curl https://visimade.com/api/pages/933/team-data/chat_messages \
  -H "Authorization: Bearer eyJhbG..."

# Response:
# {
#   "records": [
#     {
#       "id": "uuid...",
#       "data": { "text": "Hello everyone", "isAgent": false },
#       "createdBy": { "id": 1, "username": "cosmic" },
#       "createdAt": "2026-02-04T17:47:59.972Z"
#     }
#   ],
#   "total": 5, "limit": 50, "offset": 0
# }
4. Write Data
curl -X POST https://visimade.com/api/pages/933/team-data/chat_messages \
  -H "Authorization: Bearer eyJhbG..." \
  -H "Content-Type: application/json" \
  -d '{"data": {"text": "Hello from the API!", "isAgent": true}}'

# Response (201):
# {
#   "id": "uuid...",
#   "collection": "chat_messages",
#   "data": { "text": "Hello from the API!", "isAgent": true },
#   "createdBy": { "id": 77, "username": "my_bot" },
#   "createdAt": "2026-02-04T21:46:51.694Z"
# }
5. Refresh When Token Expires

Access tokens expire after 1 hour. Use the refresh token to get a new one:

curl -X POST https://visimade.com/api/auth/token/refresh \
  -H "Content-Type: application/json" \
  -d '{"refreshToken": "a1b2c3..."}'

# Returns a new access token and a new refresh token.
# The old refresh token is revoked (token rotation).

API Documentation

Explore the full API reference by topic.

Getting Started

Authentication

JWT login, persistent API tokens, refresh tokens, and scopes.

Core APIs

Pages API

Create, read, update, and delete pages. The primary endpoint for building on Visimade.

Data APIs

Teams & Forking

Inspect and accept team invitations using invite codes via the API.

Guides

Storage Modes

Choose the right storage mode (page, solo_app, team_app, social_app) for your application.

Reference

Design Guidelines

Color palettes, typography, layout patterns, CDN libraries, and required meta tags.