Title96/100
Start a request
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Starts a fresh request. Provide either request to draft new terms, or templateId from list_request_templates to reuse saved terms immediately without model drafting. Templates still require fresh requester approval and recipient agreement; they carry no answers. Starts a request to a person or business to answer specific questions from their own records, with their agreement, and has Polygraph draft its title, questions, definitions, evidence criteria and answer forms (or ask material questions first). Supplied claims identify the facts to establish, not expected answers; preserve explicit confirmation requests and naturally narrow yes/no questions without broadening disclosure. It contacts nobody and sends nothing; approve_request does that. Where the host displays apps, this shows the live request card, which follows drafting by itself. Drafting can outlast the call: the result may show status preparing, and get_request returns the draft or questions once ready.
The description explains the capability, when to use it, and what to expect.
Inputs89/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
templateId
A template from list_request_templates, instead of request. Copies its exact terms instantly, without drafting; never carries over answers or approval. Review subject-specific names, dates and thresholds before reusing.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
title
Optional title for a template-based request only. Questions and criteria remain unchanged.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
requestKey
Caller-chosen identifier for this request, scoped to the signed-in requester: letters, digits, "-" and "_". A repeated call with the same key and identical input is the same call and records nothing new; the same key with different input is refused.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
request
What the user wants to know, in their words: the questions they ask and any explicit preference for a threshold or Yes/No confirmation, with supplied claims labelled as context (value, subject, relevant period and definitions preserved). Keep brief context that changes what is asked or where to look; do not convert every supplied claim into a proposition to confirm, or broaden a narrow boolean into more disclosure. Not the conversation itself, and no card numbers, ID numbers, passwords, health details or other sensitive personal details.
Clear enough to supply this argument.
subjectName
The name of the person or business the request is to, alone (for example "Jordan Lee" or "Harbor"). A label, not proof of identity; fixed when the request starts.
Clear enough to supply this argument.
requesteeEmail
The person’s own email address, as the user gives it. After approval Polygraph sends one invitation there, and only an account signed in with this address can open the request. Fixed for this request.
Clear enough to supply this argument.
timeZone
The user’s IANA time zone, for example "Europe/Berlin", when the host knows it: it tells Polygraph which day “today” or “this month” means when it drafts dated questions. Leave it out rather than guess.
Clear enough to supply this argument.
Annotations100/100
All four behavior hints are declared.
{
"title": "Start a request",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Output schema94/100
The output schema explains the structured result.
View output schema
{
"type": "object",
"anyOf": [
{
"type": "object",
"required": [
"requestId",
"subject",
"requesteeEmail",
"status",
"questions",
"released",
"draft",
"proposal",
"expiresAt",
"invitationSentAt"
],
"properties": {
"draft": {
"anyOf": [
{
"type": "object",
"required": [
"version",
"digest",
"title",
"definitions",
"questions",
"changes",
"answeredAt",
"fromProposal"
],
"properties": {
"title": {
"type": "string",
"description": "The request’s short title; refer to the request by it."
},
"digest": {
"type": "string",
"description": "Digest of exactly these terms, binding agreement and answers to them (termsDigest)."
},
"changes": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"change"
],
"properties": {
"id": {
"type": "string",
"description": "The question’s ID."
},
"was": {
"type": "string",
"description": "The earlier wording, where the question was reworded or removed."
},
"change": {
"enum": [
"added",
"reworded",
"form",
"definitions",
"evidence",
"unchanged",
"removed"
],
"type": "string",
"description": "How the question differs from the version before: form, definitions and evidence mean that part changed with the wording kept."
}
},
"additionalProperties": false
}
},
{
"type": "null"
}
],
"description": "How each question differs from the version released before; null for the first version."
},
"version": {
"type": "integer",
"maximum": 9007199254740991,
"description": "This version’s number. Pass it to the decision tools; keep it out of what you say to the user.",
"exclusiveMinimum": 0
},
"questions": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"question",
"definitions",
"evidence",
"form",
"answer"
],
"properties": {
"id": {
"type": "string",
"description": "The question’s ID within this version; decisions, proposals and answers name questions by it."
},
"form": {
"oneOf": [
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"const": "yes_no",
"description": "Answered true (Yes) or false (No)."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"accept"
],
"properties": {
"kind": {
"type": "string",
"const": "count",
"description": "Answered with a whole number."
},
"accept": {
"type": "array",
"items": {
"enum": [
"exact",
"at_least",
"at_most",
"between"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1,
"description": "The bounds an answer may use: the exact figure, a minimum (at_least), a maximum (at_most) or a range (between)."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"currency",
"accept",
"roundTo"
],
"properties": {
"kind": {
"type": "string",
"const": "money",
"description": "Answered with an amount of money, always with its ISO 4217 currency code."
},
"accept": {
"type": "array",
"items": {
"enum": [
"exact",
"at_least",
"at_most",
"between"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1,
"description": "The bounds an answer may use: the exact figure, a minimum (at_least), a maximum (at_most) or a range (between)."
},
"roundTo": {
"anyOf": [
{
"type": "number",
"maximum": 1000000000,
"minimum": 0.0001
},
{
"type": "null"
}
],
"description": "The rounding increment the answer must be a multiple of (1000: whole thousands); null means the figure as recorded. An exact figure rounds to the nearest multiple, a minimum down, a maximum up and a range outward, so a rounded bound still holds."
},
"currency": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{3}$"
},
{
"type": "null"
}
],
"description": "The ISO 4217 currency the answer must be in; null means whichever currency the amount is in."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"unit",
"accept"
],
"properties": {
"kind": {
"type": "string",
"const": "amount",
"description": "Answered with a number in a plain unit."
},
"unit": {
"type": "string",
"maxLength": 24,
"minLength": 1,
"description": "The unit the number is in, for example \"hours\"."
},
"accept": {
"type": "array",
"items": {
"enum": [
"exact",
"at_least",
"at_most",
"between"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1,
"description": "The bounds an answer may use: the exact figure, a minimum (at_least), a maximum (at_most) or a range (between)."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"precision",
"orNone"
],
"properties": {
"kind": {
"type": "string",
"const": "date",
"description": "Answered with one date."
},
"orNone": {
"type": "boolean",
"description": "Whether None (null) is an allowed answer, once the records establish there is none."
},
"precision": {
"enum": [
"day",
"month",
"year"
],
"type": "string",
"description": "How precise the date is: a day (YYYY-MM-DD), a month (YYYY-MM) or a year (YYYY)."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"precision",
"orNone"
],
"properties": {
"kind": {
"type": "string",
"const": "period",
"description": "Answered with a start and an end, or a start that continues to \"present\"."
},
"orNone": {
"type": "boolean",
"description": "Whether None (null) is an allowed answer, once the records establish there is none."
},
"precision": {
"enum": [
"day",
"month",
"year"
],
"type": "string",
"description": "How precise the date is: a day (YYYY-MM-DD), a month (YYYY-MM) or a year (YYYY)."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"options",
"multiple"
],
"properties": {
"kind": {
"type": "string",
"const": "choice",
"description": "Answered with one of the options, or several where multiple is true."
},
"options": {
"type": "array",
"items": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"maxItems": 12,
"minItems": 2,
"description": "The options, answered word for word."
},
"multiple": {
"type": "boolean",
"description": "Whether more than one option may be given."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"maxItems"
],
"properties": {
"kind": {
"type": "string",
"const": "list",
"description": "Answered with a list of short items; an empty list says there are none."
},
"maxItems": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "The most items the answer may hold."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"maxLength",
"orNone"
],
"properties": {
"kind": {
"type": "string",
"const": "text",
"description": "Answered with one short line of fact."
},
"orNone": {
"type": "boolean",
"description": "Whether None (null) is an allowed answer, once the records establish there is none."
},
"maxLength": {
"type": "integer",
"maximum": 200,
"minimum": 20,
"description": "The most characters the answer may have."
}
},
"additionalProperties": false
}
],
"description": "The agreed form of this question’s answer: the only shape its answer can take, and all the requester learns."
},
"answer": {
"anyOf": [
{
"type": "object",
"required": [
"value",
"text"
],
"properties": {
"text": {
"type": "string",
"description": "The same answer in words, for showing to a person."
},
"value": {
"anyOf": [
{
"type": "boolean"
},
{
"anyOf": [
{
"type": "object",
"required": [
"bound",
"value"
],
"properties": {
"bound": {
"enum": [
"exact",
"at_least",
"at_most"
],
"type": "string",
"description": "Whether value is the exact figure, a minimum or a maximum."
},
"value": {
"type": "number",
"description": "The figure."
},
"currency": {
"type": "string",
"description": "The amount’s ISO 4217 currency code; present exactly when the form is money."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"bound",
"min",
"max"
],
"properties": {
"max": {
"type": "number",
"description": "The upper end."
},
"min": {
"type": "number",
"description": "The lower end."
},
"bound": {
"type": "string",
"const": "between",
"description": "A range with both ends established."
},
"currency": {
"type": "string",
"description": "The amount’s ISO 4217 currency code; present exactly when the form is money."
}
},
"additionalProperties": false
}
]
},
{
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"description": "When it ended, or \"present\" while it continues."
},
"from": {
"type": "string",
"description": "When the period started, at the agreed precision."
}
},
"additionalProperties": false
},
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"description": "The answer in its agreed form; null is None, only where the form allows it."
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "The published answer; null until the whole response is published, which is never a negative result."
},
"evidence": {
"type": "array",
"items": {
"type": "string"
},
"description": "Evidence criteria: what the answer must be established from. Never evidence itself, which Polygraph does not receive."
},
"question": {
"type": "string",
"description": "The question, exactly as both people read it."
},
"definitions": {
"type": "array",
"items": {
"type": "string"
},
"description": "IDs of the definitions this question relies on."
}
},
"additionalProperties": false
},
"description": "The numbered questions, in order."
},
"answeredAt": {
"type": [
"string",
"null"
],
"description": "When every answer to this version was published together (ISO 8601); null until then."
},
"definitions": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"term",
"meaning"
],
"properties": {
"id": {
"type": "string",
"description": "The definition’s ID, which questions list."
},
"term": {
"type": "string",
"description": "The word or phrase defined."
},
"meaning": {
"type": "string",
"description": "What the term means in this request."
}
},
"additionalProperties": false
},
"description": "What terms used in the questions mean for this request."
},
"fromProposal": {
"type": "boolean",
"description": "True when Polygraph prepared these terms from the person asked’s proposal; false for the user’s own draft or revision."
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Terms awaiting the user’s approval, never yet seen by the person asked; null when there are none."
},
"notice": {
"type": "object",
"required": [
"code",
"message"
],
"properties": {
"code": {
"enum": [
"usage_limited",
"usage_unavailable",
"revision_not_applied",
"processing_unavailable"
],
"type": "string",
"description": "The fixed notice code."
},
"message": {
"type": "string",
"description": "The notice in words, to pass on to the user."
}
},
"description": "A fixed operational notice (a usage pause, a revision not applied, an email not confirmed). Never anything about a question or its answer.",
"additionalProperties": false
},
"status": {
"enum": [
"preparing",
"clarification_needed",
"approval_needed",
"unsupported",
"awaiting_agreement",
"changes_proposed",
"declined",
"in_progress",
"complete",
"expired",
"needs_attention"
],
"type": "string",
"description": "Where the request stands: preparing (Polygraph is drafting; read again shortly), clarification_needed (questions holds Polygraph’s questions for the user), approval_needed (draft awaits the user’s approval), unsupported (see unsupportedReason; nothing was sent), awaiting_agreement (released; the person asked has not decided), changes_proposed (see proposal), declined, in_progress (agreed; answers not yet sent), complete (every answer published), expired (ended unanswered, which says nothing about any question), needs_attention (see notice)."
},
"subject": {
"type": "string",
"description": "The person or business the request is to, as the requester named them. A label, not proof of identity."
},
"proposal": {
"anyOf": [
{
"type": "object",
"required": [
"removeQuestionIds",
"requestedChanges"
],
"properties": {
"note": {
"type": "string",
"description": "The person asked’s own optional note, in their words. Not an answer, evidence or anything established."
},
"requestedChanges": {
"type": "array",
"items": {
"type": "string"
},
"description": "Proposed changes to the terms, one plain sentence each. Terms only, never answers or findings."
},
"removeQuestionIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "IDs of questions the person asked proposes to remove."
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "The person asked’s pending proposal on the released version; null when there is none. Polygraph never sends them a rejection, so never say it was declined."
},
"released": {
"anyOf": [
{
"type": "object",
"required": [
"version",
"digest",
"title",
"definitions",
"questions",
"changes",
"answeredAt",
"releasedAt",
"agreedAt",
"declined"
],
"properties": {
"title": {
"type": "string",
"description": "The request’s short title; refer to the request by it."
},
"digest": {
"type": "string",
"description": "Digest of exactly these terms, binding agreement and answers to them (termsDigest)."
},
"changes": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"change"
],
"properties": {
"id": {
"type": "string",
"description": "The question’s ID."
},
"was": {
"type": "string",
"description": "The earlier wording, where the question was reworded or removed."
},
"change": {
"enum": [
"added",
"reworded",
"form",
"definitions",
"evidence",
"unchanged",
"removed"
],
"type": "string",
"description": "How the question differs from the version before: form, definitions and evidence mean that part changed with the wording kept."
}
},
"additionalProperties": false
}
},
{
"type": "null"
}
],
"description": "How each question differs from the version released before; null for the first version."
},
"version": {
"type": "integer",
"maximum": 9007199254740991,
"description": "This version’s number. Pass it to the decision tools; keep it out of what you say to the user.",
"exclusiveMinimum": 0
},
"agreedAt": {
"type": [
"string",
"null"
],
"description": "When the person asked agreed to this whole version (ISO 8601); null if they have not."
},
"declined": {
"type": "boolean",
"description": "Whether the person asked declined this version. No reason is given, and it says nothing about any question."
},
"questions": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"question",
"definitions",
"evidence",
"form",
"answer"
],
"properties": {
"id": {
"type": "string",
"description": "The question’s ID within this version; decisions, proposals and answers name questions by it."
},
"form": {
"oneOf": [
{
"type": "object",
"required": [
"kind"
],
"properties": {
"kind": {
"type": "string",
"const": "yes_no",
"description": "Answered true (Yes) or false (No)."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"accept"
],
"properties": {
"kind": {
"type": "string",
"const": "count",
"description": "Answered with a whole number."
},
"accept": {
"type": "array",
"items": {
"enum": [
"exact",
"at_least",
"at_most",
"between"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1,
"description": "The bounds an answer may use: the exact figure, a minimum (at_least), a maximum (at_most) or a range (between)."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"currency",
"accept",
"roundTo"
],
"properties": {
"kind": {
"type": "string",
"const": "money",
"description": "Answered with an amount of money, always with its ISO 4217 currency code."
},
"accept": {
"type": "array",
"items": {
"enum": [
"exact",
"at_least",
"at_most",
"between"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1,
"description": "The bounds an answer may use: the exact figure, a minimum (at_least), a maximum (at_most) or a range (between)."
},
"roundTo": {
"anyOf": [
{
"type": "number",
"maximum": 1000000000,
"minimum": 0.0001
},
{
"type": "null"
}
],
"description": "The rounding increment the answer must be a multiple of (1000: whole thousands); null means the figure as recorded. An exact figure rounds to the nearest multiple, a minimum down, a maximum up and a range outward, so a rounded bound still holds."
},
"currency": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{3}$"
},
{
"type": "null"
}
],
"description": "The ISO 4217 currency the answer must be in; null means whichever currency the amount is in."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"unit",
"accept"
],
"properties": {
"kind": {
"type": "string",
"const": "amount",
"description": "Answered with a number in a plain unit."
},
"unit": {
"type": "string",
"maxLength": 24,
"minLength": 1,
"description": "The unit the number is in, for example \"hours\"."
},
"accept": {
"type": "array",
"items": {
"enum": [
"exact",
"at_least",
"at_most",
"between"
],
"type": "string"
},
"maxItems": 4,
"minItems": 1,
"description": "The bounds an answer may use: the exact figure, a minimum (at_least), a maximum (at_most) or a range (between)."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"precision",
"orNone"
],
"properties": {
"kind": {
"type": "string",
"const": "date",
"description": "Answered with one date."
},
"orNone": {
"type": "boolean",
"description": "Whether None (null) is an allowed answer, once the records establish there is none."
},
"precision": {
"enum": [
"day",
"month",
"year"
],
"type": "string",
"description": "How precise the date is: a day (YYYY-MM-DD), a month (YYYY-MM) or a year (YYYY)."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"precision",
"orNone"
],
"properties": {
"kind": {
"type": "string",
"const": "period",
"description": "Answered with a start and an end, or a start that continues to \"present\"."
},
"orNone": {
"type": "boolean",
"description": "Whether None (null) is an allowed answer, once the records establish there is none."
},
"precision": {
"enum": [
"day",
"month",
"year"
],
"type": "string",
"description": "How precise the date is: a day (YYYY-MM-DD), a month (YYYY-MM) or a year (YYYY)."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"options",
"multiple"
],
"properties": {
"kind": {
"type": "string",
"const": "choice",
"description": "Answered with one of the options, or several where multiple is true."
},
"options": {
"type": "array",
"items": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"maxItems": 12,
"minItems": 2,
"description": "The options, answered word for word."
},
"multiple": {
"type": "boolean",
"description": "Whether more than one option may be given."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"maxItems"
],
"properties": {
"kind": {
"type": "string",
"const": "list",
"description": "Answered with a list of short items; an empty list says there are none."
},
"maxItems": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "The most items the answer may hold."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"maxLength",
"orNone"
],
"properties": {
"kind": {
"type": "string",
"const": "text",
"description": "Answered with one short line of fact."
},
"orNone": {
"type": "boolean",
"description": "Whether None (null) is an allowed answer, once the records establish there is none."
},
"maxLength": {
"type": "integer",
"maximum": 200,
"minimum": 20,
"description": "The most characters the answer may have."
}
},
"additionalProperties": false
}
],
"description": "The agreed form of this question’s answer: the only shape its answer can take, and all the requester learns."
},
"answer": {
"anyOf": [
{
"type": "object",
"required": [
"value",
"text"
],
"properties": {
"text": {
"type": "string",
"description": "The same answer in words, for showing to a person."
},
"value": {
"anyOf": [
{
"type": "boolean"
},
{
"anyOf": [
{
"type": "object",
"required": [
"bound",
"value"
],
"properties": {
"bound": {
"enum": [
"exact",
"at_least",
"at_most"
],
"type": "string",
"description": "Whether value is the exact figure, a minimum or a maximum."
},
"value": {
"type": "number",
"description": "The figure."
},
"currency": {
"type": "string",
"description": "The amount’s ISO 4217 currency code; present exactly when the form is money."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"bound",
"min",
"max"
],
"properties": {
"max": {
"type": "number",
"description": "The upper end."
},
"min": {
"type": "number",
"description": "The lower end."
},
"bound": {
"type": "string",
"const": "between",
"description": "A range with both ends established."
},
"currency": {
"type": "string",
"description": "The amount’s ISO 4217 currency code; present exactly when the form is money."
}
},
"additionalProperties": false
}
]
},
{
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"description": "When it ended, or \"present\" while it continues."
},
"from": {
"type": "string",
"description": "When the period started, at the agreed precision."
}
},
"additionalProperties": false
},
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"description": "The answer in its agreed form; null is None, only where the form allows it."
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "The published answer; null until the whole response is published, which is never a negative result."
},
"evidence": {
"type": "array",
"items": {
"type": "string"
},
"description": "Evidence criteria: what the answer must be established from. Never evidence itself, which Polygraph does not receive."
},
"question": {
"type": "string",
"description": "The question, exactly as both people read it."
},
"definitions": {
"type": "array",
"items": {
"type": "string"
},
"description": "IDs of the definitions this question relies on."
}
},
"additionalProperties": false
},
"description": "The numbered questions, in order."
},
"answeredAt": {
"type": [
"string",
"null"
],
"description": "When every answer to this version was published together (ISO 8601); null until then."
},
"releasedAt": {
"type": "string",
"description": "When this version was released to the person asked (ISO 8601)."
},
"definitions": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"term",
"meaning"
],
"properties": {
"id": {
"type": "string",
"description": "The definition’s ID, which questions list."
},
"term": {
"type": "string",
"description": "The word or phrase defined."
},
"meaning": {
"type": "string",
"description": "What the term means in this request."
}
},
"additionalProperties": false
},
"description": "What terms used in the questions mean for this request."
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "The latest released version, exactly as the person asked reads it, with its answers once published; null before the first approval."
},
"expiresAt": {
"type": [
"string",
"null"
],
"description": "The request’s fixed end, 14 days after it was first sent (ISO 8601); revisions never extend it. Null before the first release."
},
"questions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Polygraph’s questions for the user while status is clarification_needed. Ask the user and pass back what they say with revise_request answers; never answer for them."
},
"requestId": {
"type": "string",
"description": "The request’s ID, for later calls. Bookkeeping: keep it out of what you say to the user."
},
"requesteeEmail": {
"type": "string",
"description": "The invited email address, fixed for this request and shown only to the requester."
},
"invitationSentAt": {
"type": [
"string",
"null"
],
"description": "When the email provider confirmed the one invitation email was sent (ISO 8601); not that anyone read it. Null until then."
},
"unsupportedReason": {
"enum": [
"open_ended",
"unverifiable_scope",
"request_too_large"
],
"type": "string",
"description": "Why no terms could be written (status unsupported): open_ended asked for a report, opinion or prediction rather than specific facts; unverifiable_scope would reveal information Polygraph never collects; request_too_large should be split into smaller requests."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"error",
"code"
],
"properties": {
"code": {
"type": "string",
"description": "A fixed code for what went wrong."
},
"error": {
"type": "string",
"description": "What happened and what to do next, in words."
}
},
"description": "The action failed or could not be confirmed. Read the request’s current state again before deciding whether to retry.",
"additionalProperties": false
}
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}