Skip to content
KismetKismetDevelopers
llms.txt

Read an offer and its capture disclosure

View .md

GET /v1/developer/collections/{collection}/offers/{offerId}

Operation ID: getDeveloperOffer

Read a configured welcome offer before an explicit guest submission. Requires a TEST server credential with offers.read and an exact collection-owned STAGING origin registered on the installation. DRAFT offers are available for TEST rehearsal without enabling production. Only immediate lead-capture awards with an email template are supported.

Field Value
Maturity preview
Required capability offers.read
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
offerId path string yes
origin header string yes

This operation has no JSON request body.

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 GET \
"$KISMET_API_ORIGIN/v1/developer/collections/example-collection/offers/{offerId}" \
--header "Authorization: Bearer $KISMET_DEVELOPER_API_KEY" \
--header "Accept: application/json" \
--header "origin: $KISMET_SITE_ORIGIN"
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.
{
"id": "11111111-1111-4111-8111-111111111111",
"environment": "TEST",
"headline": "A welcome offer",
"promise": "Enjoy an experience during your stay.",
"terms": null,
"disclosure": {
"version": "staging-offer-email-v1",
"text": "Send me this offer by email. This staging test sends one real email; it does not subscribe me to marketing or enroll me in a membership.",
"hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"delivery": {
"email": "real",
"subjectPrefix": "[STAGING]"
}
}

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

View complete response schema
{
"type": "object",
"additionalProperties": false,
"required": [
"id",
"environment",
"headline",
"promise",
"terms",
"disclosure",
"delivery"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "Canonical offer identifier. Equals perkId on the authenticated guest account benefit for this offer. Match within the same collection and environment; a catalog offer is not proof of a personal award."
},
"environment": {
"type": "string",
"enum": [
"TEST"
]
},
"headline": {
"type": "string"
},
"promise": {
"type": "string"
},
"terms": {
"type": [
"null",
"string"
]
},
"disclosure": {
"type": "object",
"additionalProperties": false,
"required": [
"version",
"text",
"hash"
],
"properties": {
"version": {
"type": "string"
},
"text": {
"type": "string"
},
"hash": {
"type": "string"
}
}
},
"delivery": {
"type": "object",
"additionalProperties": false,
"required": [
"email",
"subjectPrefix"
],
"properties": {
"email": {
"type": "string",
"enum": [
"real"
]
},
"subjectPrefix": {
"type": "string",
"enum": [
"[STAGING]"
]
}
}
},
"deliveryDisclosure": {
"type": "object",
"additionalProperties": false,
"required": [
"version",
"text",
"hash"
],
"properties": {
"version": {
"type": "string"
},
"text": {
"type": "string"
},
"hash": {
"type": "string"
}
}
}
}
}