Skip to content

Prismlet API

A prism is a set of typed questions you build in the Prismlet app. Send it a text and the answers come back in the same response, one value per column of the prism's Lens. Every answered call is saved as a result that you can read again by its id, and retry if it failed.

This asks the support-routing prism which team should handle a ticket, whether it is urgent and how the customer sounds.

curl https://api.prismlet.com/v1/prisms/support-routing/results \
-H "Authorization: Bearer $PRISMLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"ref": "TCK-8812",
"fields": {
"subject": "Charged twice this month",
"text": "Hi, I was billed twice for September. Please refund the second charge before Friday."
}
}'
200 OK
{
"id": "0192f5c1-7c1a-7b3e-9f55-3c1d2e4a5b6c",
"ref": "TCK-8812",
"prism": "support-routing",
"version": 3,
"status": "ok",
"error": null,
"took_ms": 640,
"created_at": "2026-09-23T09:14:02.187Z",
"answers": {
"team": "billing",
"team_probability": 0.91,
"urgent": "yes",
"tone": "annoyed",
"tone_average": 2.05
}
}

team is an option key. urgent is yes because the Lens turns the probability of yes into a label. tone_average places the tone between Calm (1) and Angry (3). The call waits for the answers, so there is nothing to poll.

This response uses the custom Lens from the quickstart. With the automatic Lens, answers holds team, urgent and tone.

The base URL is https://api.prismlet.com/v1. That address is not live yet. Paths in these docs start with /v1, except in the API reference, which writes them relative to the base URL.

The API has three endpoints:

Method Path What it does
POST /v1/prisms/{prism}/results Answer one text with a prism.
GET /v1/results/{result_id} Read a saved result.
POST /v1/results/{result_id}/retry Retry a failed result.