이메일 로그인 시작
로그인 링크와 6자리 코드를 이메일로 보냅니다, 비밀번호는 없습니다
POST /v1/auth/email/start콘솔 로그인 화면이 쓰는 엔드포인트입니다, 계약 초안에는 없고 서버(server/ci/runner2-routes.js)에만 있습니다
인증
인증 없음, 콘솔 세션 쪽 요청이라 같은 출처의 Origin(또는 Referer) 헤더가 있어야 합니다, 없으면 403 insufficient_permission(cross-site request blocked)입니다
요청 본문
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
email | string | 필수 | 로그인할 이메일, 소문자로 정규화하고 254자 이하 |
응답
202
{
"sent": true,
"expires_at": "2026-10-12T03:11:05Z"
}- 메일에는 링크(
<콘솔>/login/verify#token=…)와 6자리 코드가 함께 들어 있고 15분 동안 한 번만 쓸 수 있습니다 - 같은 이메일은 15분에 5번, 같은 IP는 15분에 20번까지 요청할 수 있습니다, 넘으면 429 rate_limited와
Retry-After헤더입니다
오류
| HTTP | 코드 | 뜻 |
|---|---|---|
| 400 | invalid_request | 이메일 형식이 아님 |
| 403 | insufficient_permission | 같은 출처가 아닌 요청 |
| 429 | rate_limited | 이메일 또는 IP 기준 요청 상한, retryafters 뒤 다시 |
| 503 | mail_unavailable | 메일을 보낼 수 없음 |
예시
curl -X POST "https://xenoci.com/api/runner/v1/auth/email/start" \
-H "Origin: https://xenoci.com" \
-H "Content-Type: application/json" \
-d '{"email":"dev@example.com"}'