REST API for querying eligibility determinations and decisions. Determinations and Decisions are created and updated by internal event handlers — this API is read-only for external consumers.

Base URL: https://api.example.com/eligibility

Determinations

Query eligibility determinations and their decisions.

GET /determinations List determinations

Retrieve a paginated list of determinations. Filter by applicationId to get the determination for a specific application.

Parameters
Name Type In Req Description
applicationId string query

Filter by application identifier.

q string query Search query using field:value syntax. Multiple conditions separated by
limit integer query

Maximum number of items to return (1-100).

offset integer query

Number of items to skip before collecting results.

sort string query Comma-separated list of fields to sort the response by. Prefix a field
Responses
200 A paginated list of determinations.
DeterminationList
total integer required Total number of items available.
limit integer required Maximum number of items requested.
offset integer required Number of items skipped before the current page.
hasNext boolean Whether more items are available beyond the current page.
items array[Determination] required
id string (uuid) read-only Unique identifier for the determination.
applicationId string (uuid) required The application this determination belongs to.
status DeterminationStatus required Lifecycle status of the determination. `pending` — created at submission, awaiting processing. `in_progress` — at least one Decision has been resolved. `completed` — all Decisions have reached a terminal state. `withdrawn` — the application was withdrawn before determination completed.
No additional fields
expeditedFlagged boolean required Whether the application was flagged for expedited SNAP processing (7 CFR § 273.2(i)). Set at submission based on the rules engine expedited screening call.
createdAt string (date-time) read-only When the determination record was created.
updatedAt string (date-time) read-only When the determination record was last updated.
400 The request is malformed or contains invalid parameters.
BadRequest
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
500 An unexpected error occurred on the server.
InternalError
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
GET /determinations/{determinationId} Get determination

Retrieve a single determination by identifier.

Parameters
Name Type In Req Description
determinationId string path

Unique identifier of the determination.

Responses
200 Determination retrieved successfully.
Determination
id string (uuid) read-only Unique identifier for the determination.
applicationId string (uuid) required The application this determination belongs to.
status DeterminationStatus required Lifecycle status of the determination. `pending` — created at submission, awaiting processing. `in_progress` — at least one Decision has been resolved. `completed` — all Decisions have reached a terminal state. `withdrawn` — the application was withdrawn before determination completed.
No additional fields
expeditedFlagged boolean required Whether the application was flagged for expedited SNAP processing (7 CFR § 273.2(i)). Set at submission based on the rules engine expedited screening call.
createdAt string (date-time) read-only When the determination record was created.
updatedAt string (date-time) read-only When the determination record was last updated.
404 The requested resource was not found.
NotFound
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
500 An unexpected error occurred on the server.
InternalError
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
GET /determinations/{determinationId}/decisions List decisions

Retrieve all decisions for a determination.

Parameters
Name Type In Req Description
determinationId string path

Unique identifier of the determination.

limit integer query

Maximum number of items to return (1-100).

offset integer query

Number of items to skip before collecting results.

sort string query Comma-separated list of fields to sort the response by. Prefix a field
Responses
200 A paginated list of decisions.
DecisionList
total integer required Total number of items available.
limit integer required Maximum number of items requested.
offset integer required Number of items skipped before the current page.
hasNext boolean Whether more items are available beyond the current page.
items array[Decision] required
id string (uuid) read-only Unique identifier for the decision.
determinationId string (uuid) required The determination this decision belongs to.
applicationId string (uuid) The application this decision belongs to.
memberId string (uuid) required The household member this decision covers.
program string required The program this decision covers.
enumsnap medicaid chip tanf aca
status DecisionStatus required Outcome status of a single program eligibility decision. `pending` — not yet evaluated, or deferred to caseworker review by the rules engine. `approved` — member meets program requirements. `denied` — member does not meet requirements based on provided information. `ineligible` — member cannot qualify for this program (e.g., citizenship bar, age limit).
No additional fields
path DecisionPath Whether the decision was made automatically or by a caseworker.
No additional fields
decidedAt string (date-time) When the decision reached a terminal state.
denialReasonCode string Machine-readable reason code when status is denied or ineligible.
electronicChecks array[ElectronicCheckSummary] Summary of electronic checks that informed this decision.
serviceType string The data exchange service that performed the check.
result string The outcome of the check (e.g., conclusive, inconclusive).
checkedAt string (date-time) When the check result was received.
createdAt string (date-time) read-only When the decision record was created.
updatedAt string (date-time) read-only When the decision record was last updated.
404 The requested resource was not found.
NotFound
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
500 An unexpected error occurred on the server.
InternalError
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
GET /determinations/{determinationId}/decisions/{decisionId} Get decision

Retrieve a single decision by identifier.

Parameters
Name Type In Req Description
determinationId string path

Unique identifier of the determination.

decisionId string path

Unique identifier of the decision.

Responses
200 Decision retrieved successfully.
Decision
id string (uuid) read-only Unique identifier for the decision.
determinationId string (uuid) required The determination this decision belongs to.
applicationId string (uuid) The application this decision belongs to.
memberId string (uuid) required The household member this decision covers.
program string required The program this decision covers.
enumsnap medicaid chip tanf aca
status DecisionStatus required Outcome status of a single program eligibility decision. `pending` — not yet evaluated, or deferred to caseworker review by the rules engine. `approved` — member meets program requirements. `denied` — member does not meet requirements based on provided information. `ineligible` — member cannot qualify for this program (e.g., citizenship bar, age limit).
No additional fields
path DecisionPath Whether the decision was made automatically or by a caseworker.
No additional fields
decidedAt string (date-time) When the decision reached a terminal state.
denialReasonCode string Machine-readable reason code when status is denied or ineligible.
electronicChecks array[ElectronicCheckSummary] Summary of electronic checks that informed this decision.
serviceType string The data exchange service that performed the check.
result string The outcome of the check (e.g., conclusive, inconclusive).
checkedAt string (date-time) When the check result was received.
createdAt string (date-time) read-only When the decision record was created.
updatedAt string (date-time) read-only When the decision record was last updated.
404 The requested resource was not found.
NotFound
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
500 An unexpected error occurred on the server.
InternalError
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
POST /determinations/{determinationId}/flag-expedited Flag expedited determination State machine →

POST /determinations/{determinationId}/flag-expedited — System flags a Determination as qualifying for expedited SNAP processing

Parameters
Name Type In Req Description
determinationId string path

Unique identifier of the determination.

Responses
200 Transition applied successfully.
Determination
id string (uuid) read-only Unique identifier for the determination.
applicationId string (uuid) required The application this determination belongs to.
status DeterminationStatus required Lifecycle status of the determination. `pending` — created at submission, awaiting processing. `in_progress` — at least one Decision has been resolved. `completed` — all Decisions have reached a terminal state. `withdrawn` — the application was withdrawn before determination completed.
No additional fields
expeditedFlagged boolean required Whether the application was flagged for expedited SNAP processing (7 CFR § 273.2(i)). Set at submission based on the rules engine expedited screening call.
createdAt string (date-time) read-only When the determination record was created.
updatedAt string (date-time) read-only When the determination record was last updated.
400 The request is malformed or contains invalid parameters.
BadRequest
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
404 The requested resource was not found.
NotFound
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
409 A conflict occurred with the current state of the resource.
Conflict
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
500 An unexpected error occurred on the server.
InternalError
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
POST /determinations/{determinationId}/complete Complete determination State machine →

POST /determinations/{determinationId}/complete — System marks a Determination as complete after all program Decisions are resolved

Parameters
Name Type In Req Description
determinationId string path

Unique identifier of the determination.

Responses
200 Transition applied successfully.
Determination
id string (uuid) read-only Unique identifier for the determination.
applicationId string (uuid) required The application this determination belongs to.
status DeterminationStatus required Lifecycle status of the determination. `pending` — created at submission, awaiting processing. `in_progress` — at least one Decision has been resolved. `completed` — all Decisions have reached a terminal state. `withdrawn` — the application was withdrawn before determination completed.
No additional fields
expeditedFlagged boolean required Whether the application was flagged for expedited SNAP processing (7 CFR § 273.2(i)). Set at submission based on the rules engine expedited screening call.
createdAt string (date-time) read-only When the determination record was created.
updatedAt string (date-time) read-only When the determination record was last updated.
400 The request is malformed or contains invalid parameters.
BadRequest
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
404 The requested resource was not found.
NotFound
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
409 A conflict occurred with the current state of the resource.
Conflict
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
500 An unexpected error occurred on the server.
InternalError
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
POST /determinations/{determinationId}/withdraw Withdraw determination State machine →

POST /determinations/{determinationId}/withdraw — System withdraws a Determination when the associated application is withdrawn

Parameters
Name Type In Req Description
determinationId string path

Unique identifier of the determination.

Responses
200 Transition applied successfully.
Determination
id string (uuid) read-only Unique identifier for the determination.
applicationId string (uuid) required The application this determination belongs to.
status DeterminationStatus required Lifecycle status of the determination. `pending` — created at submission, awaiting processing. `in_progress` — at least one Decision has been resolved. `completed` — all Decisions have reached a terminal state. `withdrawn` — the application was withdrawn before determination completed.
No additional fields
expeditedFlagged boolean required Whether the application was flagged for expedited SNAP processing (7 CFR § 273.2(i)). Set at submission based on the rules engine expedited screening call.
createdAt string (date-time) read-only When the determination record was created.
updatedAt string (date-time) read-only When the determination record was last updated.
400 The request is malformed or contains invalid parameters.
BadRequest
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
404 The requested resource was not found.
NotFound
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
409 A conflict occurred with the current state of the resource.
Conflict
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
500 An unexpected error occurred on the server.
InternalError
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
POST /determinations/{determinationId}/approve Approve decision

POST /determinations/{determinationId}/decisions/{decisionId}/approve — System approves a Decision after automatic or caseworker review

Parameters
Name Type In Req Description
determinationId string path

Unique identifier of the determination.

Request body required
ApproveDecisionRequest
path string required Whether the Decision was reached automatically (ex parte) or by a caseworker
enumauto manual
Responses
200 Transition applied successfully.
Determination
id string (uuid) read-only Unique identifier for the determination.
applicationId string (uuid) required The application this determination belongs to.
status DeterminationStatus required Lifecycle status of the determination. `pending` — created at submission, awaiting processing. `in_progress` — at least one Decision has been resolved. `completed` — all Decisions have reached a terminal state. `withdrawn` — the application was withdrawn before determination completed.
No additional fields
expeditedFlagged boolean required Whether the application was flagged for expedited SNAP processing (7 CFR § 273.2(i)). Set at submission based on the rules engine expedited screening call.
createdAt string (date-time) read-only When the determination record was created.
updatedAt string (date-time) read-only When the determination record was last updated.
400 The request is malformed or contains invalid parameters.
BadRequest
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
404 The requested resource was not found.
NotFound
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
409 A conflict occurred with the current state of the resource.
Conflict
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
500 An unexpected error occurred on the server.
InternalError
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
POST /determinations/{determinationId}/deny Deny decision

POST /determinations/{determinationId}/decisions/{decisionId}/deny — System denies a Decision based on failing eligibility criteria

Parameters
Name Type In Req Description
determinationId string path

Unique identifier of the determination.

Request body required
DenyDecisionRequest
path string required Whether the Decision was reached automatically (ex parte) or by a caseworker
enumauto manual
denialReasonCode string required Machine-readable denial reason code. Program-specific — defined at implementation from FNS code sets (SNAP) or CMS code sets (Medicaid)
Responses
200 Transition applied successfully.
Determination
id string (uuid) read-only Unique identifier for the determination.
applicationId string (uuid) required The application this determination belongs to.
status DeterminationStatus required Lifecycle status of the determination. `pending` — created at submission, awaiting processing. `in_progress` — at least one Decision has been resolved. `completed` — all Decisions have reached a terminal state. `withdrawn` — the application was withdrawn before determination completed.
No additional fields
expeditedFlagged boolean required Whether the application was flagged for expedited SNAP processing (7 CFR § 273.2(i)). Set at submission based on the rules engine expedited screening call.
createdAt string (date-time) read-only When the determination record was created.
updatedAt string (date-time) read-only When the determination record was last updated.
400 The request is malformed or contains invalid parameters.
BadRequest
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
404 The requested resource was not found.
NotFound
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
409 A conflict occurred with the current state of the resource.
Conflict
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
500 An unexpected error occurred on the server.
InternalError
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
POST /determinations/{determinationId}/mark-ineligible Mark ineligible decision

POST /determinations/{determinationId}/decisions/{decisionId}/mark-ineligible — System marks a Decision as categorically ineligible

Parameters
Name Type In Req Description
determinationId string path

Unique identifier of the determination.

Request body required
MarkIneligibleRequest
path string required Whether the Decision was reached automatically (ex parte) or by a caseworker
enumauto manual
denialReasonCode string required Machine-readable categorical ineligibility code (e.g., citizenship bar, age limit). Program-specific — defined at implementation
Responses
200 Transition applied successfully.
Determination
id string (uuid) read-only Unique identifier for the determination.
applicationId string (uuid) required The application this determination belongs to.
status DeterminationStatus required Lifecycle status of the determination. `pending` — created at submission, awaiting processing. `in_progress` — at least one Decision has been resolved. `completed` — all Decisions have reached a terminal state. `withdrawn` — the application was withdrawn before determination completed.
No additional fields
expeditedFlagged boolean required Whether the application was flagged for expedited SNAP processing (7 CFR § 273.2(i)). Set at submission based on the rules engine expedited screening call.
createdAt string (date-time) read-only When the determination record was created.
updatedAt string (date-time) read-only When the determination record was last updated.
400 The request is malformed or contains invalid parameters.
BadRequest
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
404 The requested resource was not found.
NotFound
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
409 A conflict occurred with the current state of the resource.
Conflict
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
500 An unexpected error occurred on the server.
InternalError
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.