リファレンス

REST API

どんなクライアントからでもアプリのバックエンドを使えます。

どのアプリにもJSONのREST APIがあります。WebのSDKやFlutterアプリが使っているものと同じです。

Base URL: https://builder77.com/api/runtime/<PROJECT_ID>

プロジェクトIDはビルダーのURL(/build/<PROJECT_ID>)で確認できます。CORSはすべてのオリジンで有効です。

認証

任意です。ログインしてトークンを受け取り、Authorization: Bearer <token> として送ります。

メソッドパス本文戻り値
POST/auth/signup{ email, password, name }{ token, user }
POST/auth/signin{ email, password }{ token, user }
GET/auth/me—{ user }

データベース

メソッドパス補足
GET/db/<collection>クエリ:where(URLエンコードしたJSON)、sort、limit、offset、mine=1 → { items }
GET/db/<collection>/_count→ { count }
GET/db/<collection>/<id>→ レコード、または404
POST/db/<collection>本文 { data: {...} } → レコード
PATCH/db/<collection>/<id>本文 { data: {...} }(マージ) → レコード
PUT/db/<collection>/<id>本文 { data: {...} }(置き換え) → レコード
DELETE/db/<collection>/<id>→ { ok: true }

AI、ファイル保存、メール

メソッドパス本文
POST/ai{ messages: [{role, content}], system?, json? } → { text, data? }
POST/storage/uploadfile を含むmultipart/form-data → { id, url, name, size }
POST/email/send{ to, subject, html } → { ok }
POST/payments/checkout{ items: [{collection, id, qty} or {price, qty}], mode?, returnUrl, metadata? } → { url, sessionId }
GET/payments/verify?session_id=→ { paid, payment }
GET/payments/subscription→ { active, status, subscription }
POST/payments/portal{ returnUrl } → { url }

例

curl "https://builder77.com/api/runtime/PROJECT_ID/db/tasks?sort=-createdAt&limit=10"

curl -X POST "https://builder77.com/api/runtime/PROJECT_ID/db/tasks" \
  -H "Content-Type: application/json" \
  -d '{"data": {"title": "From the API", "done": false}}'

エラー

エラーのときは、4xxまたは5xxのステータスとともにJSONの { "error": "message" } が返ります。429は呼び出し回数の上限に達したこと、402はアプリの所有者の連携クレジットがなくなったことを意味します。