K-OTP

발급 상태 조회

GET /v1/status

GET https://api.k-otp.dev/v1/status

개요

Returns verification state, delivery state, and the computed overallStatus for one issue owned by the authenticated app. overallStatus equals verificationStatus unless it is issued; while issued it is derived from deliveryStatus (delivered -> delivered, failed -> delivery_failed, queued/sent -> in_progress, unknown -> pending_lookup).

Immediately after POST /issue the issue row may still be persisting asynchronously; for up to 60 seconds such an issue is reported as pending_lookup instead of 404. The phone number is never returned.

Requires an sk_ secret key; pk_ public keys are rejected with 403.

인증

허용 키필요 scope대체 허용 scope
sk_otp:statusotp:read, *

파라미터

이름위치타입필수설명
issueIdquerystring예issueId returned by POST /v1/issue.

응답 (200)

Current status of the issue.

필드타입필수설명
issueIdstring예
messageIdstring예Identifier of the outbound message used for delivery tracking.
purposestring예
templateIdstring예
verificationStatus"expired" | "issued" | "max_attempts" | "replaced" | "verified"예
deliveryStatus"delivered" | "failed" | "queued" | "sent" | "unknown"예
overallStatus"delivered" | "delivery_failed" | "expired" | "in_progress" | "max_attempts" | "pending_lookup" | "replaced" | "verified"예verificationStatus unless it is issued; otherwise derived from deliveryStatus for user-facing display.
providerOutcomeAmbiguousbooleantrue when the provider outcome of the send is unknown (for example a provider timeout). Such sends are never retried automatically.
providerOutcomeCodestringProvider result code, when available.
expiresAtstring예RFC 3339 timestamp.
verifiedAtstringRFC 3339 timestamp, present once verified.
attemptsUsednumber예
maxAttemptsnumber예
attemptsRemainingnumber예
createdAtstring예RFC 3339 timestamp.
updatedAtstring예RFC 3339 timestamp.

오류 응답

모든 오류는 { defined, code, status, message, data? } 형태입니다. 자세한 내용은 오류를 참고하세요.

상태code설명
400BAD_REQUESTissueId is missing or blank.
401UNAUTHORIZEDthe Authorization: Bearer credential is missing, malformed, inactive, or rejected by introspection.
403FORBIDDENthe credential lacks otp:status (or an accepted alias), or a pk_ public key was used. Public keys are limited to issue/verify.
404NOT_FOUNDno issue with this issueId exists for the authenticated app (issues of other apps are indistinguishable from missing ones).
409CONFLICTthe request conflicts with the current state of the resource.
500INTERNAL_SERVER_ERRORunexpected server failure. Undefined errors (defined: false) use the same envelope.
503SERVICE_UNAVAILABLEcredential introspection or a downstream dependency is temporarily unavailable. Retry with backoff.

요청 예시

curl "https://api.k-otp.dev/v1/status?issueId=0192f3c4-8b7a-7c3e-9a51-2f4d6e8b1a90" \
  -H "Authorization: Bearer $KOTP_SECRET_KEY"

이 페이지의 내용