POST
/
public
/
v1
/
submit
/
stamp_login
Authorizations
Body
enum<string>
required
Enum options:
ACTIVITY_TYPE_STAMP_LOGINstring
required
Timestamp (in milliseconds) of the request, used to verify liveness of user requests.
string
required
Unique identifier for a given Organization.
object
required
The parameters object containing the specific intent data for this activity.
Show details
Show details
Client-side public key generated by the user, which will be conditionally added to org data based on the passkey stamp associated with this request
Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
boolean
Enable to have your activity generate and return App Proofs, enabling verifiability.
Response
A successful response returns the following fields:object
required
The activity object containing type, intent, and result
Show activity details
Show activity details
The intent of the activity
Show intent details
Show intent details
The stampLoginIntent object
Show stampLoginIntent details
Show stampLoginIntent details
Client-side public key generated by the user, which will be conditionally added to org data based on the passkey stamp associated with this request
Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.
A list of objects representing a particular User’s approval or rejection of a Consensus request, including all relevant metadata.
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/stamp_login \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: <string> (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_STAMP_LOGIN",
"timestampMs": "<string> (e.g. 1746736509954)",
"organizationId": "<string> (Your Organization ID)",
"parameters": {
"publicKey": "<string>",
"expirationSeconds": "<string>",
"invalidateExisting": "<boolean>"
}
}'
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().stampLogin({
publicKey: "<string> (Client-side public key generated by the user, which will be conditionally added to org data based on the passkey stamp associated with this request)",
expirationSeconds: "<string> (Expiration window (in seconds) indicating how long the Session is valid for. If not provided, a default of 15 minutes will be used.)",
invalidateExisting: true // Invalidate all other previously generated Login API keys
});
{
"activity": {
"id": "<activity-id>",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_STAMP_LOGIN",
"organizationId": "<organization-id>",
"timestampMs": "<timestamp> (e.g. 1746736509954)",
"result": {
"activity": {
"id": "<string>",
"organizationId": "<string>",
"status": "<string>",
"type": "<string>",
"intent": {
"stampLoginIntent": {
"publicKey": "<string>",
"expirationSeconds": "<string>",
"invalidateExisting": "<boolean>"
}
},
"result": {
"stampLoginResult": {
"session": "<string>"
}
},
"votes": "<array>",
"fingerprint": "<string>",
"canApprove": "<boolean>",
"canReject": "<boolean>",
"createdAt": "<string>",
"updatedAt": "<string>"
}
}
}
}