Skip to content
KismetKismetDevelopers
llms.txt

Record software engagement

View .md

POST /v1/developer/collections/{collection}/software/{module}/events

Operation ID: recordDeveloperSoftwareEvent

Installation-scoped custom software. Requires a server credential. Collection, application and TEST/LIVE environment come from the credential. Settings are revisioned; engagement is client-reported, not consent or booking authority. Canonical outcome attribution is currently unavailable. Browser components use their same-origin server boundary; never expose the server credential.

Field Value
Maturity beta
Required capability telemetry.write
Freshness class authenticated-state
Quota cost 1

All operations require a Kismet Developer Bearer credential. Collection and resource authority is resolved from the credential’s installation grants; identifiers in the URL never grant access.

Name In Type Required Description
collection path string yes
module path string yes

The request body is JSON. The canonical schema is:

{
"type": "object",
"properties": {
"sessionId": {
"type": "string",
"minLength": 8,
"maxLength": 255
},
"pageUrl": {
"type": "string",
"format": "uri",
"maxLength": 2048
},
"pageEnvironment": {
"type": "string",
"enum": [
"production",
"staging",
"development",
"preview",
"local"
]
},
"userAgent": {
"type": "string",
"maxLength": 1024,
"nullable": true
},
"enrollmentId": {
"type": "string",
"format": "uuid"
},
"eventId": {
"type": "string",
"format": "uuid"
},
"kind": {
"type": "string",
"enum": [
"display",
"action"
]
},
"actionId": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]{0,63}$",
"nullable": true
}
},
"required": [
"sessionId",
"pageUrl",
"pageEnvironment",
"userAgent",
"enrollmentId",
"eventId",
"kind"
],
"additionalProperties": false
}

Minimal example:

{
"sessionId": "string",
"pageUrl": "string",
"pageEnvironment": "production",
"userAgent": "string",
"enrollmentId": "string",
"eventId": "string",
"kind": "display"
}

Set KISMET_API_ORIGIN=https://api.ksmt.app and configure KISMET_DEVELOPER_API_KEY in your environment. Run server-credential requests from your backend, not browser code.

Terminal window
curl --request POST \
"$KISMET_API_ORIGIN/v1/developer/collections/example-collection/software/{module}/events" \
--header "Authorization: Bearer $KISMET_DEVELOPER_API_KEY" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{"sessionId":"string","pageUrl":"string","pageEnvironment":"production","userAgent":"string","enrollmentId":"string","eventId":"string","kind":"display"}'
Status Meaning
200 Success.
400 Invalid request parameters or body.
401 Missing, invalid, expired, or inappropriate credential/session.
403 Credential lacks the required grant/capability, or an origin/CSRF check failed.
404 The authorized resource was not found.
409 Request conflicts with the installation environment or current state.
429 Rate limit or quota exceeded; inspect response metadata before retrying.
503 A required Kismet dependency is temporarily unavailable.
{
"eventId": "55555555-5555-4555-8555-555555555555",
"received": true
}

Content type: application/json. Required fields, nullable values, and nested structures are defined below.

View complete response schema
{
"type": "object",
"properties": {
"eventId": {
"type": "string",
"format": "uuid"
},
"received": {
"type": "boolean",
"enum": [
true
]
}
},
"required": [
"eventId",
"received"
],
"additionalProperties": false
}