Skip to main content
POST
Verify Request Signature
Request Signature lets you prove that a request actually reached the Kimi API itself, rather than being forwarded elsewhere or served by a different model through an intermediary. Anyone holding the nonce, timestamp, model, and signature can use this endpoint to verify that the Kimi API accepted the request for the specified model at that time — for example, to show users or third parties that a service is backed by the official Kimi API, to check that a proxy has not substituted the model, or for auditing and dispute resolution. When calling the Chat Completions, Responses, or Messages API, send a random nonce (a UUID v4 is recommended) in the X-Msh-Request-Nonce request header. The response then carries Msh-Request-Timestamp (the Unix millisecond timestamp at which the Kimi API accepted the request) and Msh-Request-Signature (a signature token prefixed with reqsigv1_), for both streaming and non-streaming requests. Submit the nonce, timestamp, the request’s model, and the signature to this endpoint; it returns valid: true when the signature matches all three exactly, and valid: false otherwise. The signature only proves that the Kimi API accepted this nonce and request model at that time; it does not prove that the request ultimately succeeded or that the response is complete. The server does not record nonces, so replaying the same parameters still returns valid: true — replay protection and validity windows are the caller’s responsibility.

Authorizations

Authorization
string
header
required

The Authorization header expects a Bearer token. Use an MOONSHOT_API_KEY as the token. This is a server-side secret key. Generate one on the API keys page in your dashboard.

Body

application/json
nonce
string
required

The nonce sent in the X-Msh-Request-Nonce request header of the model call, exactly as sent.

Minimum string length: 1
Example:

"7d929748-0ae6-41c2-ab5d-a186498ad721"

timestamp
integer<int64>
required

The Unix millisecond timestamp returned in the Msh-Request-Timestamp response header of the model call.

Required range: x >= 1
Example:

1786338000123

model
string
required

The model value from the request body of the model call, exactly as sent.

Minimum string length: 1
Example:

"kimi-k2.7-code"

signature
string
required

The signature token returned in the Msh-Request-Signature response header of the model call.

Minimum string length: 1
Example:

"reqsigv1_<opaque-token>"

Response

Verification result

valid
boolean
required

Whether the signature is valid. true means the signature was issued by the Kimi API and matches the submitted nonce, timestamp, and model exactly; otherwise false.

Example:

true