레퍼런스
REST API
어떤 클라이언트에서든 앱 백엔드를 써요.
모든 앱에는 JSON REST API가 있어요. 웹 SDK와 Flutter 앱이 쓰는 것과 같은 API예요.
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/upload | file이 담긴 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는 앱 소유자의 연동 크레딧이 떨어졌다는 뜻이에요.