REST API의 엔드포인트를 대상별로 정리합니다. 모든 경로는 https://oasisw.ai 뒤에 붙이고, 헤더에 토큰을 넣습니다(REST API 개요·인증·한도 ). 괄호 안은 호출 한도 등급입니다.
참고
2026-10-29 oasisw.ai API 문서를 옮겨 정리하고, 같은 날 개인 프로젝트에서 직접 호출해 확인했습니다. 표의 실측 칸이 비어 있는 것은 호출해 보지 않은 것입니다. 작성 대기 미실측 엔드포인트(POST /assets, DELETE, POST /branches) — 개발팀 검수
앱(공개한 빌드)
메서드·경로 내용 실측
GET /api/rest/apps/:id공개한 앱 한 건 (normal) 200. :id는 빌드별 주소 /b/<빌드 ID>/의 빌드 ID
GET /api/rest/projects/:projectId/app프로젝트의 기본(Primary) 앱 (normal) 200. 기본 빌드가 왔습니다
GET /api/rest/projects/:projectId/apps프로젝트의 공개한 앱 목록. 페이지 나눔 (normal) 200. 공개 빌드 2개가 왔고, 내려받기 빌드는 들어 있지 않았습니다. 항목마다 name, version, url(빌드별 주소), views, size 등이 있습니다
에셋
메서드·경로 내용 실측
GET /api/rest/projects/:projectId/assets에셋 목록. ?skip=&limit=(기본 16, 최대 100000), 전체 수는 pagination.total (normal) 200. 기본 limit 16 확인
GET /api/rest/assets/:assetId에셋 한 건. 파일 내용은 없습니다 (normal) 200
GET /api/rest/assets/:assetId/file/:filename에셋 파일 내용 (normal) 200. 한글 파일 이름(체커.png)도 URL 인코딩해 받았습니다
POST /api/rest/assets에셋 만들기. multipart/form-data로 name·projectId·file(필수), branchId·parent·preload. script·html·css·text·shader·json만 받습니다(확장자로 판단) (assets)
PUT /api/rest/assets/:assetId에셋 파일 바꾸기. multipart/form-data의 file. 텍스트 계열만 (assets) 200. 바꾼 에셋 정보가 돌아왔습니다
DELETE /api/rest/assets/:assetId에셋 지우기. 폴더면 안의 것까지 지웁니다. 되돌릴 수 없습니다 (normal)
브랜치와 체크포인트
메서드·경로 내용 실측
GET /api/rest/projects/:projectId/branches열린 브랜치 목록(이름순). ?skip=<브랜치 id>로 이어 받고, pagination.hasMore로 남은 것이 있는지 봅니다 (normal) 200. main 하나. main의 브랜치 ID는 프로젝트 ID와 같았고, latestCheckpointId가 들어 있습니다
POST /api/rest/branchesJSON {projectId, name, sourceBranchId, sourceCheckpointId?}. 기준 체크포인트(없으면 그 브랜치의 마지막)에서 새 브랜치를 만듭니다 (normal)
GET /api/rest/branches/:branchId/checkpoints체크포인트 목록, 새것부터. ?limit=(최대 50)&skip=<체크포인트 id> (normal) 200. 항목에 id, user, createdAt, description
GET /api/rest/checkpoints/:id체크포인트 한 건 (normal) 200
POST /api/rest/checkpointsJSON {projectId, branchId, description}. 작업(job)을 돌려줍니다. API 문서에 따르면 바로 끝나 complete 상태로 오고, data에 체크포인트가 들어 있습니다 (normal) 201. status가 complete, data.type이 checkpoint_create인 작업이 왔습니다
씬과 작업
메서드·경로 내용 실측
GET /api/rest/projects/:projectId/scenes씬 목록. ?branchId=를 주지 않으면 기본 브랜치 (normal) 200. 항목에 id, name, created, modified
GET /api/rest/jobs/:id작업 상태: running, complete, error (normal) 200. 위 체크포인트 작업이 complete
GET /api/rest/ratelimits등급별 분당 한도 200. 토큰 없이도 응답했습니다
쓰는 예: 스크립트 파일 바꾸기
curl -X PUT \
-H "Authorization: Bearer $OASISW_TOKEN" \
-F "file=@playHit.js" \
"https://oasisw.ai/api/rest/assets/<에셋 ID>"
에셋 ID는 에디터에서 에셋을 골랐을 때 오른쪽 패널 맨 위 ID 칸에 있습니다. 실측에서 에디터를 열어 둔 채 PUT으로 스크립트 끝에 주석 한 줄을 붙인 뒤, 에디터 ASSETS 에서 그 스크립트를 고르자 새로 고치지 않아도 오른쪽 CODE 칸에 바뀐 내용이 나왔고 Size 도 늘어 있었습니다(1회). 같은 방법으로 원래 내용을 다시 올려 되돌렸습니다.
다음으로