DevelopersYour tokens
Reference

Ask

Thaw's answer to a question, streamed as server-sent events, and the email drafts. Each one counts as an ask on the plan. Needs the ask scope.

#

Ask a question

POSTapi.thawed.app/v1/ask

Thaw's answer, grounded in the documents and the Checkup's dated items, streamed as server-sent events: text events carry the answer as it is written, then one done event carries the whole turn (the answer, its citations, whether it was grounded, any change it proposes), or one error event says what went wrong. The thread remembers the last few turns per person. Needs the ask scope; on Free the answer is the plan's ten questions.

BodyJSON
questionstringrequired
Responses
200
The stream.
text/event-stream
401
No token, a token that has ended, or one issued for the other door. WWW-Authenticate names the resource metadata document.
403
The token, the role or the plan does not allow it. A missing scope is named in scope and in the WWW-Authenticate header as insufficient_scope; a plan that does not come with it says which one does.
422
A field was wrong. errors names each one.
Request
curl -X POST "https://api.thawed.app/v1/ask" \
  -H "Authorization: Bearer $THAW_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"question":"When does the electric bill come due?"}'
Body
{
  "question": "When does the electric bill come due?"
}
Response 200
text/event-stream
#

Ask about one document

POSTapi.thawed.app/v1/documents/{document}/ask

The same stream, answered from the document's own pages and items, so every citation is a page of it. history is the last few turns about this document, kept on the device.

Path
documentstring (uuid)pathrequired
BodyJSON
questionstringrequired
historyarray of object
questionstringrequired
answerstringrequired
Responses
200
The stream.
text/event-stream
401
No token, a token that has ended, or one issued for the other door. WWW-Authenticate names the resource metadata document.
403
The token, the role or the plan does not allow it. A missing scope is named in scope and in the WWW-Authenticate header as insufficient_scope; a plan that does not come with it says which one does.
404
Nothing of that id in this family or business.
422
A field was wrong. errors names each one.
Request
curl -X POST "https://api.thawed.app/v1/documents/019958a0-1c4e-7d3a-9b2f-3f0c2a6e8d11/ask" \
  -H "Authorization: Bearer $THAW_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"question":"When does the electric bill come due?","history":[{"question":"When does the electric bill come due?","answer":"The Bluebonnet Electric bill for September is $129.50, due 1 October, and pays itself by autopay."}]}'
Body
{
  "question": "When does the electric bill come due?",
  "history": [
    {
      "question": "When does the electric bill come due?",
      "answer": "The Bluebonnet Electric bill for September is $129.50, due 1 October, and pays itself by autopay."
    }
  ]
}
Response 200
text/event-stream
#

Draft the email for a dated item

POSTapi.thawed.app/v1/checkup/obligations/{obligation}/draft

The email a person would send about this item, written from what is on file, with account and policy numbers filled in only where the token may see them and [claim number] to fill by hand otherwise. Comes with the paid plans.

Path
obligationstring (uuid)pathrequired
BodyJSON
aboutstring
What the email should ask for, in the person's words.
Responses
200
The draft.
401
No token, a token that has ended, or one issued for the other door. WWW-Authenticate names the resource metadata document.
403
The token, the role or the plan does not allow it. A missing scope is named in scope and in the WWW-Authenticate header as insufficient_scope; a plan that does not come with it says which one does.
404
Nothing of that id in this family or business.
503
A refusal, as a problem.
200 answer
tostring or null
subjectstring
bodystring
needsarray of string
Placeholders left to fill by hand.
Request
curl -X POST "https://api.thawed.app/v1/checkup/obligations/019958a0-3e60-7f5c-9d41-5b2e4c80af33/draft" \
  -H "Authorization: Bearer $THAW_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"about":"Marisol Alvarez"}'
Body
{
  "about": "Marisol Alvarez"
}
Response 200
{
  "to": "billing@bluebonnet.example",
  "subject": "Policy documents for 2026",
  "body": "Hello,\n\nCould you send me a copy of the current policy documents?\n\nThank you,\nMarisol",
  "needs": [
    "string"
  ]
}
#

Draft the email for something missing

POSTapi.thawed.app/v1/checkup/{gap}/draft

The email to send about something missing from the Checkup, written from what is on file, with placeholders where a number would go. about is what to ask for in the person's words, when the gap's own words are not it.

Path
gapstring (uuid)pathrequired
BodyJSON
aboutstring
Responses
200
The draft.
401
No token, a token that has ended, or one issued for the other door. WWW-Authenticate names the resource metadata document.
403
The token, the role or the plan does not allow it. A missing scope is named in scope and in the WWW-Authenticate header as insufficient_scope; a plan that does not come with it says which one does.
404
Nothing of that id in this family or business.
503
A refusal, as a problem.
200 answer
tostring or null
subjectstring
bodystring
needsarray of string
Placeholders left to fill by hand.
Request
curl -X POST "https://api.thawed.app/v1/checkup/019958a0-4f71-706d-8e52-6c3f5d91b044/draft" \
  -H "Authorization: Bearer $THAW_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"about":"Marisol Alvarez"}'
Body
{
  "about": "Marisol Alvarez"
}
Response 200
{
  "to": "billing@bluebonnet.example",
  "subject": "Policy documents for 2026",
  "body": "Hello,\n\nCould you send me a copy of the current policy documents?\n\nThank you,\nMarisol",
  "needs": [
    "string"
  ]
}