K-OTP

Get template detail

GET /v1/templates/{templateId}

GET https://api.k-otp.dev/v1/templates/{templateId}

Overview

Returns one template including the variables schema that templateVariables must satisfy on POST /issue. code is always filled in by the server and must not be sent in templateVariables.

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

Authentication

Accepted keysRequired scopeAlso accepted
sk_otp:templatesotp:read, *

Parameters

NameInTypeRequiredDescription
templateIdpathstringyesTemplate id from GET /v1/templates.

Response (200)

Template detail.

FieldTypeRequiredDescription
templateIdstringyes
namestringyes
channelSupport"alimtalk" | "sms"[]yesChannels this template can be sent on.
bodystringyesMessage body; #{code} is replaced with the OTP and other #{variable} placeholders with templateVariables.
variablesobjectyesVariables accepted in templateVariables when issuing with this template.

Error responses

Every error uses the { defined, code, status, message, data? } envelope. See Errors.

StatuscodeDescription
400BAD_REQUESTthe request failed input validation. message describes the first failing constraint.
401UNAUTHORIZEDthe Authorization: Bearer credential is missing, malformed, inactive, or rejected by introspection.
403FORBIDDENthe credential lacks otp:templates (or an accepted alias), or a pk_ public key was used. Public keys are limited to issue/verify.
404NOT_FOUNDno template with this templateId is available.
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.

Example request

curl "https://api.k-otp.dev/v1/templates/otp_default_kr" \
  -H "Authorization: Bearer $KOTP_SECRET_KEY"

On this page