Outcome
Read the configured response-count thresholds and distinguish claimed counts from delivered notifications.
GET /api/forms/{formId}/thresholds
Before you start
Use the original authorized organization and discovered canonical Forms workspace. Bind that workspace separately from action input, then discover the actual form and threshold as needed. Neither a sample id nor an input workspaceId is a grant.
Technical guide publication does not make actual form/threshold/creator data public. All responses below are complete source-derived synthetic examples, unrun; no real form/subject/threshold read, configuration change, submission, notification, provider/model or delivery operation was executed.
A live mutation needs approval for its real target and effects, current input validation and a confirmed executable plan. Read operations retain original scope without mutation confirmation. Shared auth/runtime/protection failures require their actual request evidence; never bypass them by changing identity, access or environment policy.
Request and behavior
Action: app_topolo_forms.response_thresholds.list.
Requires workspace:read and verified workspace read access. The source first reads the scoped form, including protected content and a separate submission count; a missing form returns404 before the threshold query. Protection failure is not an empty threshold list.
Returns HTTP200 {thresholds:[...]} ordered by response_count ascending for the original organization/workspace/form. There is no LIMIT, cursor, total, date filter or stable tie-breaker in this query. The full row projection contains only id,responseCount,lastTriggeredCount,createdAt; form/workspace/creator are not repeated.
lastTriggeredCount is a database claim marker for threshold processing, not a delivery acknowledgement. A positive value does not prove a notification was emitted or received; zero does not prove the form has zero responses. Generic metadata’s $.items[].id locator is not the selected carrier: use actual thresholds[].id.
Complete worked responses
Configured threshold
Complete source-derived synthetic, unrun HTTP200. Assumes the authorized fictional form is readable and its threshold query returns this single row. A zero claim marker does not assert an actual submission count.
Input:
{
"formId": "forms_docs_fixture"
}
Response:
{
"thresholds": [
{
"id": "formthreshold_00000000-0000-4000-8000-000000000001",
"responseCount": 100,
"lastTriggeredCount": 0,
"createdAt": "2026-10-21T01:00:00.000Z"
}
]
}
Preserve actual original target/context and follow the verification/recovery steps; this fixture authorizes no operation.
No thresholds
Complete source-derived synthetic, unrun HTTP200. Assumes the form exists and the successful threshold query returns no rows. This is not a missing-form, protection or dependency failure.
Input:
{
"formId": "forms_docs_fixture"
}
Response:
{
"thresholds": []
}
Preserve actual original target/context and follow the verification/recovery steps; this fixture authorizes no operation.
No matching form
Complete source-derived synthetic, unrun HTTP404. Assumes original auth/workspace/permission checks pass but the scoped form lookup returns no row.
Input:
{
"formId": "forms_absent_docs_fixture"
}
Response:
{
"error": "not_found"
}
Preserve actual original target/context and follow the verification/recovery steps; this fixture authorizes no operation.
Verify and recover
-
Preserve the original organization/workspace/form context; the carrier itself has no such ids. Read threshold ids from thresholds[].id, not the generic items locator.
-
Interpret responseCount as configuration and lastTriggeredCount as a claim marker. Use separately authorized notification evidence if delivery matters; never submit a real response just to trigger a test.
Read only. Preserve actual failures and reconcile the original authorized target; no form, threshold, permission or protection changes are needed as rollback.
Refusals
400 / workspace_required: Resolve the canonical workspace through supported Auth resource/workspace discovery and bind it separately. The app bootstrap response is not a workspace catalogue.
403 / forbidden: Preserve the actual route permission refusal in its original context; use the owner for legitimate access.
404 / not_found: Reconcile the actual discovered form/threshold in the same workspace; do not guess another tenant’s ids.
The current output is a broad catalog-derived structural schema. Schema acceptance alone does not identify the actual success carrier or prove that a mutation or notification completed. Preserve concrete status, body and request evidence.
Related actions
Change log
-
2026-10-21: Added original workspace/permission boundaries, exact threshold carrier and claim semantics, complete illustrative responses, uncertainty reconciliation and limits of compensation. All examples are synthetic and unrun.
-
2026-10-21: Corrected related-action links to canonical documentation slugs.