문서API 목록

API 목록

/api/ci/v1 엔드포인트 · 권한 · MCP 도구 · CLI 명령

AI로 연결하기 →

API 목록 직접 확인하기펼쳐보기

주소 https://xenoci.com/api/ci/v1, 인증 Authorization: Bearer 발급한_API_키. 요청 헤더 XenoCI-Error-Format: 2를 보내면 오류를 전체 봉투로 받습니다. 기계가 읽는 명세는 /openapi.json입니다.

권한(scopes): 새 키 기본은 read·build·order이고, secrets(시크릿 저장·삭제)와 manage(맥 초기화)는 키 화면에서 켭니다. 권한이 없으면 403 scope_required와 required_scope가 옵니다. 반납·취소·환불, 결제 승인과 결제 수단은 어떤 키로도 할 수 없습니다.

키별 한도: 1분 요청 수(읽기 600·쓰기 120), 동시 빌드 20, 결제 대기 주문 3. 넘으면 429와 retry_after_s. 남은 양은 GET /me의 remaining.

요청권한MCP · CLI설명
GET /mereadaccount · xenoci whoami이 API 키의 계정·키 이름·권한(scopes)·한도(limits)·남은 요청 수(remaining). /account도 같음
GET /accountreadaccount · xenoci whoami/me와 같음
GET /catalogreadcatalog · xenoci catalog상품별 24시간 가격(원, VAT 포함)·사양·Xcode·지금 배정 가능한 대수(available_now)·sales_open·내 재입고 알림
POST /quotereadquote · xenoci order --tier ID --hours 24 --quote새 임대 견적(부작용 없음)
POST /ordersordercreate_order · xenoci order --tier ID --hours 24주문 생성 → 201 + pay_url(30분 유효). 사람이 같은 계정으로 열어 동의·결제. API는 동의·결제를 하지 않음
GET /ordersreadorder_status · xenoci orders주문 목록(?status=awaiting_payment 등)
GET /orders/{order_no}readorder_status · xenoci order RT-…주문 상태(awaiting_payment·paid·provisioning·ready·expired·canceled)·pay_url·rental_ids
GET /orders/{order_no}/waitreadwait_order · xenoci wait RT-…상태가 바뀌거나 ready·expired·canceled가 될 때까지 최대 60초 롱폴(timeout=초)
POST /orders/{order_no}/releaseorderrelease_order · xenoci release RT-…결제 전 주문 취소, 잡아 둔 자리 반납
GET /rentalsreadlist_macs · xenoci macs빌린 맥(남은 시간·연장 가능 여부·현재 빌드)과 빌드 대기열
GET /rentals/{rental_id}readlist_macs · xenoci macs맥 한 대 상세
POST /rentals/{rental_id}/extend/quotereadextend (quote_only) · xenoci extend rt_… --hours 24 --quote연장 견적
POST /rentals/{rental_id}/extendorderextend · xenoci extend rt_… --hours 24한 대 연장 주문 → pay_url
POST /rentals/extendorderextend · xenoci extend rt_1 rt_2 --hours 24여러 대 한 번에 연장 → pay_url 하나. 하나라도 불가면 409 extension_unavailable + items
POST /rentals/{rental_id}/resetmanage-맥 VM 초기화(manage 권한, 기본 꺼짐)
GET /waitlistreadjoin_waitlist · xenoci waitlist재입고 알림 신청 목록
POST /waitlistorderjoin_waitlist · xenoci waitlist --tier ID재입고 알림 신청
DELETE /waitlist/{id}orderjoin_waitlist (leave) · xenoci waitlist --leave ID재입고 알림 취소
GET /poolreadlist_macs · xenoci pool빈 자리와 대기열
POST /uploadsbuildbuild · xenoci build폴더 업로드: gzip 매니페스트 → 서버에 없는 파일 목록
POST /uploads/{id}/blobsbuildbuild · xenoci build빠진 파일 묶음(gzip) 전송
POST /uploads/tarbuild-CLI 없이 tar.gz 한 번에 업로드(curl·PowerShell)
POST /buildsbuildbuild · xenoci build --script ./ci.sh빌드 제출. 소스는 upload_id·repo_url·repo 중 하나, rental_id로 맥 지정, queue_until_rental: true면 맥이 생길 때까지 대기. Idempotency-Key 지원
GET /buildsread-빌드 목록(rental·state·from·to·q·before·limit)
GET /builds/{build_id}readbuild_status · xenoci status rb_…빌드 상태·대기 순번(queue_position)·estimated_start_at·종료 코드·실패 요약(failure)
GET /builds/{build_id}/waitreadwait_build · xenoci wait rb_…빌드가 끝날 때까지 최대 60초 롱폴
GET /builds/{build_id}/logreadbuild_log · xenoci logs rb_… [--failure | --tail N]로그. offset=N이면 JSON 구간, format=text&wait=S면 텍스트 스트림
POST /builds/{build_id}/cancelbuildcancel_build · xenoci cancel rb_…빌드 취소
GET /secretsreadsecrets (list) · xenoci secrets빌드 시크릿 이름 목록(값은 돌려주지 않음)
PUT /secrets/{name}secretssecrets (put) · xenoci secrets put NAME < 값시크릿 저장. 빌드에 환경 변수로 들어가고 로그에서 가려짐
DELETE /secrets/{name}secretssecrets (delete) · xenoci secrets delete NAME시크릿 삭제
GET /errorsreadlist_errors · xenoci errors내 계정 최근 API 오류와 실패 빌드(?fault=&code=&kind=api|build&since=&key=self)