Overview
The Axiom MCP server connects agents — Claude Desktop, Claude Code, Cursor, and any client that speaks the Model Context Protocol over stdio — to the Axiom Rule API: search encoded rules, read the legal sources behind them, execute household calculations with full traces, and verify runtime parity, all through typed tool calls.
| Package | @axiom-foundation/mcp (npm, published with provenance) |
|---|---|
| Source | TheAxiomFoundation/axiom-mcp (MIT) |
| Transport | stdio · JSON-RPC 2.0 (Model Context Protocol) |
| Upstream | https://api.axiom.org by default — every tool call is one request to the Axiom API |
| Requires | Node.js ≥ 20 and an Axiom API key |
- The server is a thin adapter. It holds no rules, no data, and no secrets of its own; it forwards each tool call to the configured API and returns the response envelope verbatim.
- It exposes 14 tools, 4 resources, and 3 prompts — all read-only or calculation-only. There is no shell execution, no arbitrary network fetch, and no write or admin surface.
- Every result carries both human-readable JSON text and machine-readable
structuredContent, includingmeta.request_id— quote it when reporting issues.
How it works
MCP client (Claude Desktop · Claude Code · Cursor · …)
│ spawns the server, then speaks JSON-RPC 2.0 over stdio
▼
axiom-mcp (npx -y @axiom-foundation/mcp)
│ one HTTPS request per tool call
│ Authorization: Bearer $AXIOM_API_KEY
▼
Axiom API https://api.axiom.org/v1
rule index · provenance · calculation runtime · parity fixturesThe client launches the server as a child process and negotiates capabilities over stdio. Each tool call maps to exactly one API endpoint (listed per tool below); the API’s response envelope — status, data, meta — is passed through untouched as the tool result’s structuredContent, so everything documented for the HTTP API holds for MCP results too.
Because the adapter is stateless, scaling and access control live entirely in the API: the key you configure decides which tools succeed (see scopes), and rate limits apply per key.
Install
Claude Desktop — add to claude_desktop_config.json (Settings → Developer → Edit Config), then restart:
{
"mcpServers": {
"axiom": {
"command": "npx",
"args": [
"-y",
"@axiom-foundation/mcp"
],
"env": {
"AXIOM_API_BASE_URL": "https://api.axiom.org",
"AXIOM_API_KEY": "axiom_..."
}
}
}
}Claude Code — one command:
claude mcp add axiom \
-e AXIOM_API_KEY=axiom_... \
-e AXIOM_API_BASE_URL=https://api.axiom.org \
-- npx -y @axiom-foundation/mcpCursor — the same server definition in .cursor/mcp.json (project) or ~/.cursor/mcp.json (global).
Any other stdio client — command npx, arguments -y @axiom-foundation/mcp, environment as above.
Alternatives: npx -y github:TheAxiomFoundation/axiom-mcp installs from GitHub and tracks main; a local checkout runs with node dist/index.js after npm install && npm run build.
Verify the wiring without an MCP client using the MCP Inspector:
npx -y @modelcontextprotocol/inspector \
-e AXIOM_API_KEY=axiom_... \
npx -y @axiom-foundation/mcpConfiguration
The server reads three environment variables at startup, set by the MCP client’s env block:
| Variable | Default | Purpose |
|---|---|---|
AXIOM_API_BASE_URL | https://api.axiom.org | API origin; trailing slashes are stripped |
AXIOM_API_KEY | none | sent as Authorization: Bearer on every request |
AXIOM_API_TIMEOUT_MS | 30000 | per-request timeout; must be a positive number |
The server starts without a key, but every protected tool then returns a structured 401 unauthorized error result — issue a trial key to get going. A hung upstream request aborts at the timeout with a clear error instead of stalling the agent.
Authentication & scopes
The server uses the same keys as the HTTP API (details). No key yet? Issue yourself a trial key — no signup, 14-day expiry, scoped to every tool below except parity:
curl -s -X POST https://api.axiom.org/v1/keys/trialDurable keys and admin:parity are issued by Axiom administrators. The server forwards the configured key on every call; which tools succeed depends on the key’s scopes:
| Scope | Unlocks |
|---|---|
rules:read | get_capabilities, list_programs, search_rules, get_rule, list_runtime_packages, get_runtime_package |
sources:read | get_rule_sources |
graphs:read | get_rule_dependencies |
calculate:run | calculate_household, calculate_batch, submit_calculation_job, get_calculation_job |
admin:parity | list_parity_cases, run_parity_cases |
Use the narrowest key that matches the agent’s job: a research assistant needs rules:read + sources:read + graphs:read; a scenario runner adds calculate:run. A key that authenticates but lacks a scope produces a 403 insufficient_scope tool error; a missing or invalid key produces 401 unauthorized. Both arrive as structured tool errors — the protocol connection stays healthy.
Results & errors
Every successful tool call returns the same payload twice: pretty-printed JSON in content[0].text for display, and the identical object in structuredContent for programmatic use. The object is the API envelope, untouched. A complete recorded search_rules result:
{
"content": [
{
"type": "text",
"text": "{\n \"status\": \"ok\",\n \"data\": {\n \"query\": \"colorado snap standard deduction\",\n \"results\": [\n {\n \"id\": \"us-co.cdhs_snap_fy_2026_benefit_calculation\",\n \"citation_path\": \"us-co/policy/cdhs/snap/fy-2026-benefit-calculation\",\n \"name\": \"Cdhs SNAP Fy 2026 Benefit Calculation\",\n \"jurisdiction\": \"us-co\",\n \"program_id\": \"co-snap\",\n \"document_class\": \"policy\",\n \"status\": \"encoded\",\n \"source_count\": 1\n },\n {\n \"id\": \"us-co.10_ccr_2506_1_4_407\",\n \"citation_path\": \"us-co/regulation/10-ccr-2506-1/4.407\",\n \"name\": \"10 Ccr 2506 1 4.407\",\n \"jurisdiction\": \"us-co\",\n \"program_id\": \"rulespec\",\n \"document_class\": \"regulation\",\n \"status\": \"encoded\",\n \"source_count\": 1\n }\n ]\n },\n \"meta\": {\n \"request_id\": \"88384fe3-6a57-4e21-a7be-0714f6a29018\",\n \"api_version\": \"0.1.0\",\n \"environment\": \"local\"\n }\n}"
}
],
"structuredContent": {
"status": "ok",
"data": {
"query": "colorado snap standard deduction",
"results": [
{
"id": "us-co.cdhs_snap_fy_2026_benefit_calculation",
"citation_path": "us-co/policy/cdhs/snap/fy-2026-benefit-calculation",
"name": "Cdhs SNAP Fy 2026 Benefit Calculation",
"jurisdiction": "us-co",
"program_id": "co-snap",
"document_class": "policy",
"status": "encoded",
"source_count": 1
},
{
"id": "us-co.10_ccr_2506_1_4_407",
"citation_path": "us-co/regulation/10-ccr-2506-1/4.407",
"name": "10 Ccr 2506 1 4.407",
"jurisdiction": "us-co",
"program_id": "rulespec",
"document_class": "regulation",
"status": "encoded",
"source_count": 1
}
]
},
"meta": {
"request_id": "88384fe3-6a57-4e21-a7be-0714f6a29018",
"api_version": "0.1.0",
"environment": "local"
}
}
}When the API rejects a call, the server does not raise a protocol error. It returns a tool result with isError: true whose structuredContent.error preserves everything the API said — HTTP status, the full API error envelope (code, message, request_id), and retry_after when the API rate-limits. A complete recorded error result:
{
"content": [
{
"type": "text",
"text": "{\n \"error\": {\n \"message\": \"Axiom API /v1/rules/us-co/does-not-exist returned HTTP 404\",\n \"http_status\": 404,\n \"api_response\": {\n \"status\": \"error\",\n \"error\": {\n \"code\": \"not_found\",\n \"message\": \"Rule not found\"\n },\n \"meta\": {\n \"request_id\": \"a51b87df-ef93-489d-9f80-28e01202da2f\",\n \"api_version\": \"0.1.0\",\n \"environment\": \"local\"\n }\n }\n }\n}"
}
],
"structuredContent": {
"error": {
"message": "Axiom API /v1/rules/us-co/does-not-exist returned HTTP 404",
"http_status": 404,
"api_response": {
"status": "error",
"error": {
"code": "not_found",
"message": "Rule not found"
},
"meta": {
"request_id": "a51b87df-ef93-489d-9f80-28e01202da2f",
"api_version": "0.1.0",
"environment": "local"
}
}
}
},
"isError": true
}| Failure | What the agent sees |
|---|---|
| 4xx / 5xx from the API | isError: true with error.http_status and error.api_response |
429 rate_limited | retried once automatically when retry-after ≤ 10s; otherwise as above, plus error.retry_after (seconds) — wait, then retry |
| Timeout | tool error text naming the URL and the configured timeout |
| Network failure | tool error text naming the URL and the underlying cause |
Tools
Each tool wraps exactly one API endpoint, shown beside its name with the key scope it needs. The Arguments tab shows the tools/call arguments object; JSON-RPC shows the full stdio frame for anyone wiring a raw client; HTTP shows the equivalent direct request. Response examples are real recorded exchanges (values reflect the recording environment’s configured rule index and runtime; response shapes are stable). With an API key in the header field above, Try it runs the underlying endpoint live from this page.
get_capabilitiesGET/v1/capabilitiesrules:read
Machine-readable manifest of the connected API: version, environment, endpoint map, repository status and program count, runtime status, the executable package list, and one ready-to-run sample_request per package. Agents should call this (or read the axiom://capabilities resource) before assuming anything about what the deployment can do.
No arguments.
{}{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "get_capabilities"
}
}curl -s https://api.axiom.org/v1/capabilities \
-H "x-api-key: $AXIOM_API_KEY"{
"status": "ok",
"data": {
"api_version": "0.1.0",
"environment": "local",
"openapi_url": "/v1/openapi.json",
"endpoints": {
"programs": "/v1/programs",
"search": "/v1/search",
"rules": "/v1/rules/{rule_id}",
"calculate": "/v1/calculate",
"runtime_packages": "/v1/runtime/packages",
"parity_cases": "/v1/parity/cases",
"parity_run": "/v1/parity/run"
},
"repository": {
"source": "static-rulespec-index",
"status": "ready",
"program_count": 41
},
"runtime": {
"name": "compiled-package-runtime",
"status": "ready",
"detail": "9 compiled packages configured",
"package_count": 9,
"packages": [
{
"program_id": "co-snap",
"jurisdiction": "us-co",
"runtime_id": "axiom-rules-engine:co-snap",
"mode": "compiled",
"status": "ready",
"default_outputs": [
"snap_benefit_amount",
"snap_net_income",
"gross_income",
"snap_eligible"
],
"output_count": 168,
"entity_count": 2,
"input_count": 256
},
{
"program_id": "universal-credit",
"jurisdiction": "uk",
"runtime_id": "axiom-rules-engine:uk-universal-credit-fy-2026-27",
"mode": "compiled",
"status": "ready",
"default_outputs": [
"universal_credit_award_amount",
"universal_credit_maximum_amount",
"standard_allowance_amount",
"earned_income_deduction_from_maximum_amount"
],
"output_count": 51,
"entity_count": 3,
"input_count": 88
},
{
"program_id": "snap",
"jurisdiction": "us-al",
"runtime_id": "axiom-rules-engine:us-al-snap",
"mode": "compiled",
"status": "ready",
"default_outputs": [
"snap_benefit_amount",
"snap_net_income",
"snap_gross_monthly_income",
"snap_eligible"
],
"output_count": 242,
"entity_count": 4,
"input_count": 481
},
{
"program_id": "snap",
"jurisdiction": "us-ca",
"runtime_id": "axiom-rules-engine:us-ca-snap",
"mode": "compiled",
"status": "ready",
"default_outputs": [
"snap_benefit_amount",
"snap_net_income",
"snap_gross_monthly_income",
"snap_eligible"
],
"output_count": 164,
"entity_count": 4,
"input_count": 295
},
{
"program_id": "snap",
"jurisdiction": "us-nc",
"runtime_id": "axiom-rules-engine:us-nc-snap",
"mode": "compiled",
"status": "ready",
"default_outputs": [
"snap_benefit_amount",
"snap_net_income",
"snap_gross_monthly_income",
"snap_eligible"
],
"output_count": 1095,
"entity_count": 7,
"input_count": 2467
},
{
"program_id": "snap",
"jurisdiction": "us-ny",
"runtime_id": "axiom-rules-engine:us-ny-snap",
"mode": "compiled",
"status": "ready",
"default_outputs": [
"snap_benefit_amount",
"snap_net_income",
"snap_gross_monthly_income",
"snap_eligible"
],
"output_count": 125,
"entity_count": 4,
"input_count": 176
},
{
"program_id": "snap",
"jurisdiction": "us-sc",
"runtime_id": "axiom-rules-engine:us-sc-snap",
"mode": "compiled",
"status": "ready",
"default_outputs": [
"snap_benefit_amount",
"snap_net_income",
"snap_gross_monthly_income",
"snap_eligible"
],
"output_count": 1327,
"entity_count": 6,
"input_count": 2913
},
{
"program_id": "snap",
"jurisdiction": "us-tn",
"runtime_id": "axiom-rules-engine:us-tn-snap",
"mode": "compiled",
"status": "ready",
"default_outputs": [
"snap_benefit_amount",
"snap_net_income",
"snap_gross_monthly_income",
"snap_eligible"
],
"output_count": 514,
"entity_count": 5,
"input_count": 1151
},
{
"program_id": "snap",
"jurisdiction": "us-az",
"runtime_id": "axiom-rules-engine:us-az-snap",
"mode": "compiled",
"status": "ready",
"default_outputs": [
"snap_benefit_amount",
"snap_net_income",
"snap_gross_monthly_income",
"snap_eligible"
],
"output_count": 11,
"entity_count": 1,
"input_count": 10
}
],
"sample_requests": [
{
"program_id": "co-snap",
"jurisdiction": "us-co",
"sample_request": {
"program_id": "co-snap",
"jurisdiction": "us-co",
"household": {
"entities": {
"Household": {
"household:1": {
"actual_documented_boarder_room_and_meal_costs": 0,
"all_household_members_experiencing_homelessness": false,
"allowable_self_employment_business_costs_for_period": 0,
"anticipated_capital_gains_next_12_months": 0,
"anticipated_monthly_allowable_self_employment_business_costs": 0,
"anticipated_monthly_self_employment_income": 0,
"application_date": "2026-01-01",
"assistance_payments": 0,
"available_trust_dividends": 0,
"average_monthly_child_support_paid": 0,
"average_rental_property_management_hours_per_week": 0,
"battered_shelter_resident": false,
"boarder_income_is_foster_care_payment": false,
"boarder_payments_for_room_meals_and_shelter_contributions": 0,
"bona_fide_prepaid_funeral_agreement": false,
"break_in_participation_days": 0,
"capital_goods_services_or_property_sale_proceeds_connected_to_self_employment": 0,
"child_support_payment_history_months": 0,
"child_support_payment_verified": false,
"current_household_income": false,
"dependent_care_expense_necessary_for_work_or_training": false,
"dependent_care_expenses_paid": 0,
"dependent_care_reimbursed_or_paid_by_other_program": 0,
"direct_support_and_alimony_payments": 0,
"earned_income_excluding_boarder_net_income": 0
}
},
"Person": {
"person:1:1": {
"adequate_child_care_unavailable_to_attend_class_and_meet_student_work_requirement": false,
"alaska_subsistence_hunts_or_fishes_30_hours_weekly": false,
"alien_status_documentation_missing_or_unwilling": false,
"assigned_or_placed_in_higher_education_through_qualifying_employment_training_program": false,
"co_resident_gross_income": 0,
"elderly_disabled_person_unable_to_purchase_and_prepare_meals": false,
"enrolled_at_least_half_time": false,
"enrolled_in_business_technical_trade_or_vocational_school_requiring_high_school_diploma": false,
"enrolled_in_college_or_university_degree_program": false,
"enrolled_through_jobs_or_successor_program": false,
"federal_minimum_wage": 0,
"federal_or_state_minimum_wage": 0,
"known_student_refused_work_study_assignment": false,
"llc_s_corporation_business_expenses": 0,
"llc_s_corporation_business_income": 0,
"llc_s_corporation_owner_receives_draw": false,
"llc_s_corporation_owner_salary": 0,
"member_abawd_monthly_work_hours": 0,
"member_abawd_weekly_work_hours": 0,
"member_accepted_bona_fide_suitable_employment_offer_if_offered": false,
"member_age": 0,
"member_age_16_or_17_is_not_household_head_or_attends_school_or_training_half_time": false,
"member_age_24_or_younger_and_was_in_foster_care_on_attaining_age_18": false,
"member_combines_work_and_work_program_20_hours_weekly": false,
"member_covered_by_abawd_time_limit_waiver": false
}
}
},
"period": "2026-01"
},
"variables": [
"snap_benefit_amount",
"snap_net_income",
"gross_income",
"snap_eligible"
]
}
},
{
"program_id": "universal-credit",
"jurisdiction": "uk",
"sample_request": {
"program_id": "universal-credit",
"jurisdiction": "uk",
"household": {
"entities": {
"Family": {
"family:1": {
"amount_considered_excessive_having_regard_to_paid_work_extent": 0,
"amount_from_funds_provided_by_secretary_of_state_or_scottish_or_welsh_ministers_for_work_related_activity_or_training": 0,
"amount_met_or_reimbursed_by_employer_or_some_other_person": 0,
"amount_resulting_from_all_other_steps_in_parts_4_and_5_calculation": 0,
"award_contains_housing_costs_element": false,
"award_is_for_joint_claimants": false,
"both_joint_claimants_qualify_for_carer_element": false,
"carer_element_amount": 0,
"charges_paid_for_relevant_childcare_attributable_to_assessment_period": 0,
"childcare_costs_element_child_count": 0,
"claim_is_for_joint_claimants": false,
"claimant_earned_income_in_assessment_period": 0,
"claimant_is_member_of_couple": false,
"claimant_makes_claim_as_single_person": false,
"claimant_responsible_for_child_or_qualifying_young_person": false,
"claimant_unearned_income_in_assessment_period": 0,
"either_joint_claimant_is_aged_25_or_over": false,
"first_joint_claimant_has_limited_capability_for_work_and_work_related_activity": false,
"housing_cost_contribution_count_required_under_paragraph_13_in_renters_case": 0,
"joint_claimants_are_caring_for_the_same_severely_disabled_person": false,
"joint_claimants_combined_earned_income_in_assessment_period": 0,
"joint_claimants_combined_unearned_income_in_assessment_period": 0,
"joint_claimants_responsible_for_child_or_qualifying_young_person": false,
"lcwra_element_amount_given_in_regulation_36_for_first_joint_claimant": 0,
"lcwra_element_amount_given_in_regulation_36_for_second_joint_claimant": 0
}
},
"Person": {
"person:1": {
"calculation_is_under_part_4_or_5_of_schedule": false,
"carer_element_applies": false,
"child_is_first_child_or_qualifying_young_person": false,
"child_is_second_or_subsequent_child_or_qualifying_young_person": false,
"child_or_qualifying_young_person_entitled_to_adult_disability_payment": false,
"child_or_qualifying_young_person_entitled_to_care_component_of_child_disability_payment_at_highest_rate": false,
"child_or_qualifying_young_person_entitled_to_care_component_of_disability_living_allowance_at_highest_rate": false,
"child_or_qualifying_young_person_entitled_to_care_component_of_scottish_adult_disability_living_allowance_at_highest_rate": false,
"child_or_qualifying_young_person_entitled_to_child_disability_payment": false,
"child_or_qualifying_young_person_entitled_to_daily_living_component_of_adult_disability_payment_at_enhanced_rate": false,
"child_or_qualifying_young_person_entitled_to_daily_living_component_of_personal_independence_payment_at_enhanced_rate": false,
"child_or_qualifying_young_person_entitled_to_disability_living_allowance": false,
"child_or_qualifying_young_person_entitled_to_personal_independence_payment": false,
"child_or_qualifying_young_person_entitled_to_scottish_adult_disability_living_allowance": false,
"child_or_qualifying_young_person_is_blind": false,
"claim_is_for_joint_claimants": false,
"claimant_and_other_person_jointly_elect_claimant_has_carer_element_and_other_person_has_no_scottish_carer_benefit_entitlement": false,
"claimant_has_limited_capability_for_work_and_work_related_activity": false,
"claimant_has_regular_and_substantial_caring_responsibilities_for_severely_disabled_person": false,
"claimant_has_shared_ownership_tenancy_in_england_or_wales": false,
"claimant_has_shared_ownership_tenancy_in_scotland": false,
"claimant_is_liable_for_rent_payments": false,
"claimant_is_liable_for_service_charge_payments": false,
"claimant_is_pre_commencement_lcwra_claimant": false,
"claimant_is_severe_conditions_criteria_claimant": false
}
},
"Payment": {
"payment:1": {
"payment_is_relevant_service_charge_payment_taken_into_account_under_paragraph_8": false,
"service_charge_free_period_arrangements_apply_to_payment": false,
"service_charge_free_periods_in_12_month_period": 0,
"service_charge_payment_amount": 0,
"service_charge_payment_period_is_annual": false,
"service_charge_payment_period_is_four_weeks": false,
"service_charge_payment_period_is_month": false,
"service_charge_payment_period_is_three_months": false,
"service_charge_payment_period_is_two_weeks": false,
"service_charge_payment_period_is_week": false,
"total_service_charge_payments_liable_in_12_month_period": 0
}
}
},
"period": "2026-04"
},
"variables": [
"universal_credit_award_amount",
"universal_credit_maximum_amount",
"standard_allowance_amount",
"earned_income_deduction_from_maximum_amount"
]
}
},
{
"program_id": "snap",
"jurisdiction": "us-al",
"sample_request": {
"program_id": "snap",
"jurisdiction": "us-al",
"household": {
"entities": {
"Household": {
"household:1": {
"action_occurs_within_certification_period": false,
"action_reduces_or_terminates_benefits": false,
"actual_allotment_received_for_month": 0,
"all_adult_household_members_are_elderly_or_disabled": false,
"all_household_members_are_homeless": false,
"all_household_members_have_died": false,
"allotment_household_received": 0,
"allotment_household_would_have_received_with_disqualified_member": 0,
"allotment_varies_within_certification_period_with_prior_notice": false,
"allowable_resource_limit": 0,
"amount_of_benefits_lost": 0,
"anticipated_future_resource_amount": 0,
"application_filed_between_first_and_fifteenth_of_last_month": false,
"application_filed_within_15_days_of_notice_of_expiration": false,
"application_is_identifiable_with_signature_and_date": false,
"arrearage_child_support_paid": 0,
"available_resources_at_interview": 0,
"average_biweekly_expense_amount": 0,
"average_weekly_expense_amount": 0,
"benefits_wrongfully_withheld_by_judicial_action": false,
"biweekly_income_amount": 0,
"boarder_contributions_to_household_shelter_expenses": 0,
"boarder_direct_payments_for_room_and_meals": 0,
"both_terminated_and_delayed_new_source": false,
"child_support_collected_through_income_tax_intercept": 0
}
},
"Person": {
"person:1:1": {
"adequate_child_care_unavailable_to_attend_class_and_meet_student_work_requirement": false,
"adult_applying_strictly_for_children": false,
"alaska_subsistence_hunts_or_fishes_30_hours_weekly": false,
"alien_status_documentation_missing_or_unwilling": false,
"another_household_member_is_ill_requiring_individuals_presence": false,
"applicable_state_minimum_wage_applies": false,
"applicable_state_minimum_wage_rate": 0,
"assigned_or_placed_in_higher_education_through_qualifying_employment_training_program": false,
"battered_individual_no_longer_lives_in_same_household_with_batterer": false,
"child_earned_income_amount": 0,
"circumstance_is_beyond_individuals_control": false,
"county_department_determined_member_refused_or_failed_to_provide_or_apply_for_ssn": false,
"county_department_determines_person_is_responsible_household_member": false,
"daily_commuting_hours_excluding_child_care_transport": 0,
"days_since_work_registration": 0,
"delay_is_due_to_illness": false,
"delay_is_due_to_lack_of_transportation": false,
"delay_is_due_to_temporary_absence": false,
"distance_prohibits_walking_to_job_site": false,
"distance_to_employment_is_unreasonable_given_wage_and_cost": false,
"each_household_member_receives_aid_to_aged_blind_or_disabled_under_title_i_x_xiv_or_xvi_social_security_act": false,
"each_household_member_receives_benefits_under_state_or_local_general_assistance_program": false,
"each_household_member_receives_benefits_under_state_program_funded_under_part_a_title_iv_social_security_act": false,
"each_household_member_receives_supplemental_security_income_benefits_under_title_xvi_social_security_act": false,
"employment_interferes_with_religious_observances": false
}
},
"Asset": {
"asset:1:1": {
"asset_fair_market_value": 0,
"asset_is_licensed_vehicle": false,
"asset_is_used_for_household_transportation_or_to_obtain_or_continue_employment": false,
"state_vehicle_allowance_standards_apply_in_lieu_of_default_vehicle_rule": false,
"vehicle_depended_on_to_carry_household_fuel_or_water": false,
"vehicle_necessary_for_transport_of_physically_disabled_household_member": false,
"vehicle_provides_household_primary_source_of_fuel_or_water": false,
"vehicle_used_to_produce_earned_income": false
}
},
"Scalar": {
"scalar:1": {
"bona_fide_funeral_agreement_equity_value": 0,
"household_nonliquid_resources_value": 0,
"household_vehicles_value": 0,
"jointly_owned_resources_with_categorically_eligible_member_value": 0,
"resources_determined_inaccessible_to_household_value": 0,
"resources_excluded_by_federal_statute_value": 0,
"resources_that_are_prorated_income_value": 0,
"tax_preferred_education_and_retirement_account_balances": false
}
}
},
"period": "2026-01"
},
"variables": [
"snap_benefit_amount",
"snap_net_income",
"snap_gross_monthly_income",
"snap_eligible"
]
}
},
{
"program_id": "snap",
"jurisdiction": "us-ca",
"sample_request": {
"program_id": "snap",
"jurisdiction": "us-ca",
"household": {
"entities": {
"Household": {
"household:1": {
"application_contains_handwritten_signature_transmitted_by_fax": false,
"application_contains_handwritten_signature_transmitted_by_other_electronic_transmission": false,
"application_signed_through_electronic_signature_techniques": false,
"application_submitted_by_fax_to_food_stamp_office": false,
"application_submitted_by_mail_to_food_stamp_office": false,
"application_submitted_in_person_to_food_stamp_office": false,
"application_submitted_through_authorized_representative_to_food_stamp_office": false,
"application_submitted_through_electronic_transmission_to_food_stamp_office": false,
"application_submitted_through_online_electronic_application_to_food_stamp_office": false,
"certification_cannot_be_completed_by_end_of_current_certification_period_due_to_verification_response_period": false,
"certification_period_change_information_requires_clarification": false,
"child_support_deduction": 0,
"consumer_price_index_change_for_12_month_period_ending_preceding_june": 0,
"days_allowed_to_provide_required_application_verification": 0,
"days_allowed_to_respond_to_rfi": 0,
"days_allowed_to_submit_acceptable_noncitizen_documentation": 0,
"days_following_application_date": 0,
"days_since_application": 0,
"deductible_expense_claimed": false,
"dependent_care_deduction": 0,
"expense_could_not_be_verified_within_processing_standard_because_cwd_failed_to_allow_sufficient_time": false,
"expense_disallowed_due_to_missing_verification": false,
"expense_not_verified": false,
"expense_verification_would_delay_certification": false,
"federal_agency_verification_request_submitted_for_noncitizen_status": false
}
},
"Person": {
"person:1:1": {
"abawd_work_hours_per_month": 0,
"adequate_child_care_unavailable_for_child_age_six_to_under_twelve": false,
"adequate_child_care_unavailable_to_attend_class_and_meet_student_work_requirement": false,
"alaska_subsistence_hunts_or_fishes_30_hours_weekly": false,
"alien_status_documentation_missing_or_unwilling": false,
"all_counted_credits_before_1997_or_without_earner_federal_means_tested_public_benefits": false,
"another_household_member_illness_requires_members_presence": false,
"assigned_or_placed_in_higher_education_through_qualifying_employment_training_program": false,
"assigned_to_fset_program_by_cwd": false,
"cfap_recipient": false,
"cfap_recipient_meets_other_deeming_exemption": false,
"child_earned_income_amount": 0,
"circumstances_beyond_members_control": false,
"complies_with_fset_program_requirements_under_section_63_407_8": false,
"cwd_determines_individual_in_compliance_with_food_stamp_work_registration_requirements_under_section_63_407_4": false,
"cwd_employee_is_not_persons_regularly_assigned_caseworker": false,
"disqualification_period_has_ended": false,
"documents_delivered_in_person_to_cwd_employee": false,
"documents_delivered_to_location_where_caseworker_conducts_business": false,
"each_household_member_receives_aid_to_aged_blind_or_disabled_under_title_i_x_xiv_or_xvi_social_security_act": false,
"each_household_member_receives_benefits_under_state_or_local_general_assistance_program": false,
"each_household_member_receives_benefits_under_state_program_funded_under_part_a_title_iv_social_security_act": false,
"each_household_member_receives_supplemental_security_income_benefits_under_title_xvi_social_security_act": false,
"english_inability_caused_work_registrant_problem": false,
"enrolled_at_least_half_time": false
}
},
"Asset": {
"asset:1:1": {
"asset_fair_market_value": 0,
"asset_is_licensed_vehicle": false,
"asset_is_used_for_household_transportation_or_to_obtain_or_continue_employment": false,
"state_vehicle_allowance_standards_apply_in_lieu_of_default_vehicle_rule": false,
"vehicle_depended_on_to_carry_household_fuel_or_water": false,
"vehicle_necessary_for_transport_of_physically_disabled_household_member": false,
"vehicle_provides_household_primary_source_of_fuel_or_water": false,
"vehicle_used_to_produce_earned_income": false
}
},
"SnapUnit": {
"snap_unit:1": {
"abawd_consecutive_months_completed_under_section_63_410_52": 0,
"abawd_countable_month_window_months": 0,
"abawd_countable_months_used_in_window": 0,
"abawd_has_regained_eligibility": false,
"abawd_subsequently_stops_meeting_work_requirement": false,
"applicant_or_recipient_household": false,
"application_filed_and_completed": false,
"categorically_eligible_household_under_sections_63_301_6_7_and_82": false,
"cwd_has_determined_children_able_to_participate_in_parent_household": false,
"duplicate_participation_occurs": false,
"federal_fsp_food_stamp_benefits_if_all_members_had_remained_eligible": 0,
"household_contains_cfap_participant": false,
"household_contains_federal_fsp_participant": false,
"household_determined_eligible": false,
"household_has_member_with_more_than_one_ssn": false,
"household_income_does_not_exceed_maximum_income_eligibility_standard": false,
"household_interviewed": false,
"household_provided_cwd_all_ssns_for_each_member_with_more_than_one_ssn": false,
"household_provided_cwd_ssn_of_each_household_member_prior_to_certification": false,
"household_provided_verification_of_application_for_ssn_for_each_household_member_prior_to_certification": false,
"household_qualifies_for_expedited_service_under_section_63_301_5": false,
"household_resources_do_not_exceed_maximum_resource_eligibility_standard": false,
"income_of_others_with_whom_individual_resides_excluding_spouse_included_under_section_63_502_1": 0,
"income_standard_for_elderly_and_disabled_separate_household_status_under_section_63_1001_10": 0,
"individual_age": 0
}
}
},
"period": "2026-01"
},
"variables": [
"snap_benefit_amount",
"snap_net_income",
"snap_gross_monthly_income",
"snap_eligible"
]
}
},
{
"program_id": "snap",
"jurisdiction": "us-nc",
"sample_request": {
"program_id": "snap",
"jurisdiction": "us-nc",
"household": {
"entities": {
"Household": {
"household:1": {
"abawd_stopped_working_average_hours_per_month": 0,
"absent_military_member_made_contribution_to_fns_unit": false,
"absent_military_pay_directly_deposited_to_joint_account": false,
"absent_military_period_days": 0,
"action_pending_in_active_county": false,
"action_regards_immigration_status_due_to_prior_ncfast_certification_status": false,
"action_would_be_mid_certification": false,
"additional_transportation_expenses_for_dependent_care": 0,
"adjusted_gross_self_employment_income_not_excluded": 0,
"agency_became_aware_of_wffa_work_first_employment_services_or_ssi_approval": false,
"all_fns_units_in_residence_contribute_to_heating_or_cooling_expenses": false,
"all_other_eligibility_criteria_met": false,
"amount_and_date_of_initial_wffa_or_ssi_benefits_can_be_reasonably_anticipated": false,
"anticipated_income_changes_during_certification_period_documented": false,
"applicable_minimum_wage": 0,
"applicant_available_income_statement_documented": false,
"applicant_checked_application_indicating_authorized_representative_needed": false,
"applicant_statement_provided": false,
"applicant_statement_questionable": false,
"application_date_is_date_received_by_first_county": false,
"application_filed_online_through_epass": false,
"application_is_in_person": false,
"application_processed_by_county_that_receives_application": false,
"application_processed_on_or_after_h_r_1_effective_date": false,
"application_received_before_h_r_1_effective_date": false
}
},
"Person": {
"person:1:1": {
"abawd_exemption_met_for_at_least_part_of_month": false,
"abawd_monthly_qualifying_work_program_hours": 0,
"abawd_monthly_work_hours": 0,
"accepted_offer_of_employment_meets_minimum_requirement": false,
"accepted_offer_weekly_earnings": 0,
"accepted_offer_weekly_hours": 0,
"action_is_initial_application_or_reapplication": false,
"action_is_recertification": false,
"active_duty_service_is_after_minimum_service_rule_date": false,
"actively_participates_in_community_college_program": false,
"actively_participates_in_wia_program": false,
"activity_is_more_than_a_job_nc_education_or_training_with_required_snap_e_t_plan_conditions": false,
"activity_is_section_236_trade_act_program": false,
"activity_is_wioa_program": false,
"actual_cash_support_from_sponsor": false,
"actual_income_received_for_month_of_application": 0,
"actual_income_received_in_month": 0,
"actual_monthly_converted_dependent_care_expense_paid_for_dependent": 0,
"actual_reimbursable_transportation_and_other_expenses_incurred": 0,
"actual_total_child_support_paid": false,
"additional_controlled_substance_felony_conviction_within_minimum_disqualification_period": false,
"additional_dependent_care_transportation_miles": 0,
"additional_save_verification_pending": false,
"adequate_child_care_unavailable_to_attend_class_and_meet_student_work_requirement": false,
"adjusted_status_to_lpr": false
}
},
"Asset": {
"asset:1:1": {
"access_depends_on_joint_owner_agreement": false,
"access_to_resource_value_depends_on_agreement_of_joint_owner": false,
"accessible_portion_value": 0,
"account_holder_age": 0,
"account_value": 0,
"actual_value_of_funds_accessible_to_household_at_interview": 0,
"applicable_resource_limit": 0,
"applicant_resides_in_battered_spouse_shelter": false,
"application_stage": false,
"asset_expected_life_months": 0,
"asset_fair_market_value": 0,
"asset_is_accessible_retirement": false,
"asset_is_accessible_trust_account": false,
"asset_is_educational_loan_combined_with_countable_funds_for_more_than_6_months": false,
"asset_is_eitc_payment": false,
"asset_is_energy_assistance": false,
"asset_is_energy_assistance_payment_or_allowance_under_federal_state_or_local_law": false,
"asset_is_equipment": false,
"asset_is_equity_line_of_credit": false,
"asset_is_excluded_by_law": false,
"asset_is_excluded_funds": false,
"asset_is_farm_equipment": false,
"asset_is_fema_payment_commingled_with_non_excluded_funds_for_6_months_prior": false,
"asset_is_financial_instrument": false,
"asset_is_funds_in_the_online_account": false
}
},
"Scalar": {
"scalar:1": {}
},
"Payment": {
"payment:1:1": {
"absent_parent_payment_can_be_reasonably_anticipated": false,
"actual_child_support_received": false,
"amount_and_date_of_receipt_can_be_reasonably_anticipated": false,
"amount_specified_person_is_responsible_for_paying_can_be_determined": false,
"amount_used_to_repay_overpayment_to_same_source": 0,
"anticipated_gross_bonus_vacation_pay_over_certification_period": 0,
"applicant_or_recipient_was_specified_person_when_bill_incurred": false,
"assistance_is_for_room_and_board": false,
"base_period_payment_is_representative": false,
"benefit_reduced_by_federal_offset_to_repay_federal_debt": false,
"bill_first_billed_in_current_certification_period": false,
"bill_incurred_and_billed_in_prior_certification_period": false,
"bill_is_unpaid_in_full_or_in_part": false,
"bill_paid_by_another_source": false,
"bill_previously_allowed_as_medical_deduction_for_fns": false,
"bill_reported_in_current_certification_period": false,
"bill_shows_personal_property_amounts_separate_from_dwelling_and_land_amounts": false,
"bill_under_repayment_plan": false,
"bill_written_off_by_medical_provider": false,
"budgeting_occurs_for_application_or_recertification": false,
"cafeteria_plan_or_flexible_benefit_is_countable_under_section_315_05": false,
"car_is_used_as_primary_residence": false,
"care_provided_to_dependent_fns_unit_member_by_non_fns_unit_member": false,
"care_provided_to_fns_unit_member": false,
"care_provided_to_non_fns_unit_member": false
}
},
"Employer": {
"employer:1:1": {
"contractual_agreement_assigns_responsibility_for_required_benefits": false,
"contractual_agreement_designates_job_slots_available": false,
"county_dss_has_contractual_agreement_with_job_provider": false,
"job_site_is_private_non_profit_agency": false,
"job_site_is_public_agency": false
}
},
"Business": {
"business:1:1": {
"allowable_reasonable_costs_of_producing_income": 0,
"annual_income_and_expenses_estimated_from_most_accurate_information_available": false,
"anticipated_averaged_monthly_income_entered_in_nc_fast": false,
"business_has_existed_at_least_one_year": false,
"business_has_not_operated_for_twelve_months": false,
"business_in_individuals_place_of_residence": false,
"business_incorporated_as_c_corporation": false,
"business_incorporated_as_llc": false,
"business_incorporated_as_s_corporation": false,
"business_is_unincorporated": false,
"business_owner_is_fns_unit_member": false,
"business_records_used_for_mileage_deduction": false,
"capital_assets_or_equipment_amount": 0,
"checks_made_out_for_cash_from_corporate_checking_accounts": 0,
"client_receives_shelter_or_utility_deduction_for_same_residence_costs": false,
"current_or_anticipated_losses_amount": 0,
"depreciation_claimed_for_tax_purposes_amount": 0,
"farm_cost_of_doing_business": 0,
"farm_income_received": 0,
"farmer_annual_gross_receipts_expected": 0,
"fns_unit_reports_business_increase_or_decrease_expected_to_continue_more_than_one_month": false,
"household_expenses_paid_from_corporate_checking_accounts": 0,
"household_states_records_are_representative": false,
"income_averaged_and_anticipated_based_on_most_accurate_information_available": false,
"income_averaged_and_anticipated_for_remainder_of_certification_period": false
}
}
},
"period": "2026-01"
},
"variables": [
"snap_benefit_amount",
"snap_net_income",
"snap_gross_monthly_income",
"snap_eligible"
]
}
},
{
"program_id": "snap",
"jurisdiction": "us-ny",
"sample_request": {
"program_id": "snap",
"jurisdiction": "us-ny",
"household": {
"entities": {
"Household": {
"household:1": {
"all_household_members_experiencing_homelessness": false,
"child_support_deduction": 0,
"consumer_price_index_change_for_12_month_period_ending_preceding_june": 0,
"dependent_care_deduction": 0,
"first_full_month_benefit_level": 0,
"homeless_household_free_shelter_all_month": false,
"homeless_household_has_shelter_costs": false,
"household_applies_following_more_than_30_days_not_certified": false,
"household_billed_separately_for_non_telephone_standard_utility": false,
"household_certified_for_participation_in_food_stamp_program": false,
"household_contains_individual_participating_in_more_than_one_household_or_project_area": false,
"household_entitled_to_excess_medical_deduction": false,
"household_entitled_to_heap_or_liheaa_payment": false,
"household_has_earned_income_budgeted_for_snap": false,
"household_has_out_of_pocket_dependent_care_expenses": false,
"household_in_central_meter_housing_charged_only_for_excess_heating_or_cooling": false,
"household_in_project_area_solely_for_vacation": false,
"household_in_public_housing_unit_with_central_utility_meters_charged_only_for_excess_heating_or_cooling_costs": false,
"household_in_rental_housing_billed_by_landlord_based_on_individual_usage_or_flat_rate_separately_from_rent": false,
"household_includes_elderly_or_disabled_member": false,
"household_incurred_or_anticipated_basic_service_cost_for_one_telephone": false,
"household_incurred_or_anticipated_heating_or_cooling_costs_separate_from_rent_or_mortgage": false,
"household_incurs_heating_or_cooling_expenses_separately_from_rent_or_mortgage": false,
"household_initial_month": false,
"household_is_migrant_or_seasonal_farmworker_household": false
}
},
"Person": {
"person:1:1": {
"adequate_child_care_unavailable_to_attend_class_and_meet_student_work_requirement": false,
"alaska_subsistence_hunts_or_fishes_30_hours_weekly": false,
"alien_status_documentation_missing_or_unwilling": false,
"assigned_or_placed_in_higher_education_through_qualifying_employment_training_program": false,
"child_earned_income_amount": 0,
"each_household_member_receives_aid_to_aged_blind_or_disabled_under_title_i_x_xiv_or_xvi_social_security_act": false,
"each_household_member_receives_benefits_under_state_or_local_general_assistance_program": false,
"each_household_member_receives_benefits_under_state_program_funded_under_part_a_title_iv_social_security_act": false,
"each_household_member_receives_supplemental_security_income_benefits_under_title_xvi_social_security_act": false,
"enrolled_at_least_half_time": false,
"enrolled_in_business_technical_trade_or_vocational_school_requiring_high_school_diploma": false,
"enrolled_in_college_or_university_degree_program": false,
"enrolled_through_jobs_or_successor_program": false,
"federal_minimum_wage": 7.25,
"federal_or_state_minimum_wage": 7.25,
"household_income_and_other_financial_resources_are_substantial_limiting_factor_in_permitting_more_nutritious_diet": false,
"known_student_refused_work_study_assignment": false,
"member_abawd_monthly_work_hours": 0,
"member_abawd_weekly_work_hours": 0,
"member_accepted_bona_fide_suitable_employment_offer_if_offered": false,
"member_age": 30,
"member_age_16_or_17_is_not_household_head_or_attends_school_or_training_half_time": false,
"member_age_24_or_younger_and_was_in_foster_care_on_attaining_age_18": false,
"member_authorized_to_receive_family_assistance_nonemergency_safety_net_or_ssi_benefits_but_not_yet_paid": false,
"member_combines_work_and_work_program_20_hours_weekly": false
}
},
"Asset": {
"asset:1:1": {
"asset_fair_market_value": 0,
"asset_is_licensed_vehicle": false,
"asset_is_used_for_household_transportation_or_to_obtain_or_continue_employment": false,
"state_vehicle_allowance_standards_apply_in_lieu_of_default_vehicle_rule": false,
"vehicle_depended_on_to_carry_household_fuel_or_water": false,
"vehicle_necessary_for_transport_of_physically_disabled_household_member": false,
"vehicle_provides_household_primary_source_of_fuel_or_water": false,
"vehicle_used_to_produce_earned_income": false
}
},
"SnapUnit": {
"snap_unit:1": {}
}
},
"period": "2026-01"
},
"variables": [
"snap_benefit_amount",
"snap_net_income",
"snap_gross_monthly_income",
"snap_eligible"
]
}
},
{
"program_id": "snap",
"jurisdiction": "us-sc",
"sample_request": {
"program_id": "snap",
"jurisdiction": "us-sc",
"household": {
"entities": {
"Household": {
"household:1": {
"a_form_registered_in_scwins_on_date_received": false,
"a_form_registered_on_date_of_receipt": false,
"abawd_member_weekly_work_hours": 0,
"abawd_weekly_work_hours": 0,
"absence_due_to_employment_or_training_away_from_home": false,
"absence_due_to_illness": false,
"actual_amount_of_loss": 0,
"actual_rent_mortgage_expense_change": 0,
"actual_rent_mortgage_expense_change_amount": 0,
"actual_shelter_utility_expenses": 0,
"actual_utility_expense_change": 0,
"actual_utility_expense_change_reported_during_certification_period": false,
"actual_utility_expenses": 0,
"actual_utility_expenses_for_unoccupied_home": 0,
"additional_information_questionable": false,
"additional_verification_needed": false,
"additional_verification_needed_after_interview": false,
"additional_verification_needed_as_result_of_interview": false,
"additional_verification_requested": false,
"administrative_law_court_appeal_initiated": false,
"adverse_action_notice_days_from_mail_to_effective": 0,
"adverse_notice_period_ends_on_weekend_or_holiday": false,
"agency_action_or_inaction_at_issue": false,
"agency_action_would_reduce_suspend_or_terminate_household_benefits": false,
"agency_assigned_longer_certification_period": false
}
},
"Person": {
"person:1:1": {
"abawd_fulfilling_work_requirement_at_application_or_add_request": false,
"abawd_is_otherwise_exempt_from_work_requirement": false,
"abawd_meets_exception_to_work_requirement": false,
"abawd_received_snap_benefits_erroneously": false,
"abawd_time_tracking_period_years_elapsed": 0,
"absence_from_united_states_months": 0,
"acceptable_immigration_status_documentation_provided": false,
"accepted_bona_fide_offer_of_employment_hours_per_week": 0,
"accepted_bona_fide_offer_weekly_earnings": 0,
"action_is_for_age_race_color_sex_disability_religious_creed_national_origin_or_political_beliefs": false,
"active_duty_in_us_armed_forces_other_than_training": false,
"additional_three_months_are_used_consecutively": false,
"adequate_child_care_unavailable_to_attend_class_and_meet_student_work_requirement": false,
"adjudication_supports_ebt_misuse_determination": false,
"adjusted_to_lawful_permanent_resident": false,
"administration_disqualification_hearing_determined_household_member_committed_ipv": false,
"administrative_disqualification_hearing_is_pending": false,
"administrative_disqualification_or_prosecution_case_exists": false,
"admitted_as_amerasian_under_public_law_100_202_as_amended": false,
"admitted_as_refugee_under_ina_207": false,
"adult_in_snap_household_with_dependent_child_age_14_to_17": false,
"adult_member_when_overpayment_occurred": false,
"adult_member_when_trafficking_occurred": false,
"adverse_action_pending_for_work_noncompliance": false,
"afghan_granted_parole_under_afghanistan_supplemental_appropriations_act_2022": false
}
},
"Asset": {
"asset:1:1": {
"asset_age_years": 0,
"asset_equity_value": 0,
"asset_fair_market_value": 0,
"asset_has_not_been_sold": false,
"asset_is_alcoholic_beverage": false,
"asset_is_antique_vehicle": false,
"asset_is_burial_plot": false,
"asset_is_classic_vehicle": false,
"asset_is_custom_made_vehicle": false,
"asset_is_deposit_fee_in_excess_of_state_fee_reimbursement_required_for_returnable_container": false,
"asset_is_energy_assistance_payment_or_allowance_excluded_as_income": false,
"asset_is_equipment_for_procuring_food_for_eligible_household_in_alaska_area_with_extremely_difficult_food_store_access_and_subsistence_hunting_or_fishing_reliance": false,
"asset_is_equipment_for_transportation_clothing_or_shelter": false,
"asset_is_firearm_ammunition_or_other_explosive": false,
"asset_is_food_or_food_product_intended_for_human_consumption": false,
"asset_is_fund_in_plan_contract_or_account_meeting_internal_revenue_code_requirements": false,
"asset_is_funds_in_or_transferred_to_trust_or_unavailable_trust_income": false,
"asset_is_governmental_payment_designated_for_restoration_of_home_damaged_in_disaster": false,
"asset_is_home_and_surrounding_property_not_separated_by_intervening_property_owned_by_others": false,
"asset_is_hot_food_or_hot_food_product_prepared_for_immediate_consumption": false,
"asset_is_household_goods_or_personal_effects": false,
"asset_is_indian_land_held_jointly_with_tribe_or_sale_requires_bia_approval": false,
"asset_is_licensed_vehicle": false,
"asset_is_licensed_vehicle_driven_by_member_under_age_18_to_work_school_training_or_look_for_work": false,
"asset_is_lifetime_rights_to_property": false
}
},
"Employer": {
"employer:1:1": {
"employer_is_in_violation_of_labor_laws": false,
"employer_is_involved_in_strike_lockout_or_unusual_labor_condition": false,
"employer_is_nonprofit_company_or_corporation": false,
"employer_is_or_employs_immediate_family_member_of_employee_trainee": false,
"employer_is_private_company_or_corporation": false,
"employer_is_private_employer": false,
"employer_is_public_agency": false,
"employer_is_public_employer": false,
"gross_wages_excluding_overtime": 0,
"payroll_records_or_paystubs_attached_to_dss_form_5003": false,
"reimbursement_invoice_and_timesheet_signed_by_employee_trainee": false,
"reimbursement_invoice_and_timesheet_signed_by_employer": false,
"reimbursement_supported_by_business_receipts": false,
"reimbursement_supported_by_other_records_normally_retained_by_employer": false,
"reimbursement_supported_by_time_and_payroll_records": false,
"wages_are_during_established_contracted_training_period": false
}
},
"Payment": {
"payment:1:1": {
"additional_care_and_supervision_due_to_child_physical_mental_or_emotional_difficulties": false,
"adoption_subsidy_payment_amount": 0,
"adoption_subsidy_portion_covers_medical_care": 0,
"alimony_fees_withheld": 0,
"alimony_payment_amount": 0,
"animal_is_specially_trained_to_serve_elderly_or_disabled_program_participant": false,
"annual_royalty_income": 0,
"annuity_average_amount_over_period_intended_to_cover": 0,
"assistance_payment_from_federal_or_federally_aided_public_assistance_program": false,
"assistance_payment_from_general_assistance_program": false,
"assistance_payment_from_other_need_based_assistance_program": false,
"assistance_payment_is_vendor_payment_to_third_party_on_behalf_of_household": false,
"assistance_payment_requires_work_without_compensation_other_than_assistance": false,
"assistance_provided_to_children": false,
"attendant_care_cost_amount": 0,
"attendant_care_cost_qualifies_under_both_dependent_care_and_medical_deduction": false,
"attendant_care_cost_treated_as_dependent_care_expense": false,
"attendant_care_cost_treated_as_medical_expense": false,
"awarded_to_household_member": false,
"benefit_has_no_monetary_payment_made_on_behalf_of_household": false,
"benefit_is_gain_or_benefit_not_in_form_of_money_payable_directly_to_household": false,
"cash_assistance_provided_to_refugee": false,
"cash_contribution_monetary_gift_from_non_household_member": false,
"cash_donation_monetary_gift_from_organization": false,
"child_attends_qualifying_home_school_program": false
}
},
"Business": {
"business:1:1": {
"anticipated_monthly_earnings_reflecting_increase_or_decrease": 0,
"best_estimated_monthly_self_employment_income": 0,
"business_enterprise_has_existed_at_least_a_year": false,
"business_income_substantially_increased_or_decreased": false,
"capital_gains": 0,
"client_ownership_percentage": 0,
"earnings_reflecting_increase_or_decrease_are_available": false,
"form_1065_line_1c_gross_receipts_or_sales": 0,
"form_1065_line_7_other_income": 0,
"form_1120_line_11_total_income": 0,
"gross_self_employment_income": 0,
"llc_only_member_is_an_individual": false,
"months_business_has_operated": 0,
"months_income_intended_to_cover": 0,
"schedule_c_line_1_gross_receipts_or_sales": 0,
"schedule_c_line_2_returns_and_allowances": 0,
"schedule_c_line_3_amount_is_listed": false,
"schedule_c_line_3_profit_or_loss_from_business": 0,
"schedule_c_line_6_other_income": 0,
"self_employment_income_for_period_business_has_operated": 0,
"self_employment_income_for_period_income_intended_to_cover": 0
}
}
},
"period": "2026-01"
},
"variables": [
"snap_benefit_amount",
"snap_net_income",
"snap_gross_monthly_income",
"snap_eligible"
]
}
},
{
"program_id": "snap",
"jurisdiction": "us-tn",
"sample_request": {
"program_id": "snap",
"jurisdiction": "us-tn",
"household": {
"entities": {
"Household": {
"household:1": {
"abawd_member_average_monthly_hours": 0,
"abawd_member_average_weekly_hours": 0,
"acquired_licensed_vehicle_not_fully_excludable": false,
"active_case_action_on_data_match_pending": false,
"actual_utility_costs_reasonably_anticipated_to_continue_for_certification_period": false,
"additional_loan_or_charge_account_charges_amount": 0,
"adh_official_or_court_determined_household_member_committed_ipv": false,
"administrative_disqualification_decision_for_ipv_subsequently_reversed": false,
"adverse_action_is_based_on_data_match_information": false,
"adverse_action_notice_days_before_effective_date": 0,
"adverse_action_occurs_within_certification_period": false,
"adverse_notification_received": false,
"all_adult_members_are_elderly_or_disabled": false,
"all_household_members_have_died": false,
"all_medical_expenses_verified": false,
"allotment_is_initial_allotment": false,
"alternative_verification_source_available": false,
"amount_due_on_claim": 0,
"annual_income_amount": 0,
"annual_like_income_received_in_shorter_period": false,
"annual_like_short_period_income_amount": 0,
"another_source_contradicts_household_statements": false,
"appealed_issue_is_benefits_reduced_because_of_mass_change": false,
"appealed_issue_is_snap_eligibility_or_benefits_improperly_computed": false,
"applicant_failed_to_provide_verification_within_required_days": false
}
},
"Person": {
"person:1:1": {
"abawd_lookback_period_months": 0,
"abawd_non_compliant": false,
"accepted_bona_fide_offer_of_employment": false,
"additional_cause_for_adverse_action_and_no_subsequent_hearing_requested": false,
"adequate_child_care_unavailable_to_attend_class_and_meet_student_work_requirement": false,
"alaska_subsistence_hunts_or_fishes_30_hours_weekly": false,
"alien_status_documentation_missing_or_unwilling": false,
"allotment_household_would_have_received_if_disqualified_member_allowed_to_participate": 0,
"another_household_member_accepted_employment_in_another_county": false,
"another_household_member_enrolled_at_least_half_time_in_recognized_school_training_or_higher_education_in_another_county": false,
"applicant_has_valid_reason_for_not_providing_snap_renewal_application": false,
"applicant_or_recipient_statement_verifies_unearned_educational_income_amount": false,
"assigned_or_placed_in_higher_education_through_qualifying_employment_training_program": false,
"authorized_representative_applies_for_household": false,
"average_paid_employment_hours_per_month_excluding_wioa_class_attendance": 0,
"average_paid_employment_hours_per_week_excluding_wioa_class_attendance": 0,
"average_weekly_earnings": 0,
"average_weekly_hours_worked": 0,
"certification_period_expires": false,
"child_case_certification_period_does_not_end_before_eligibility_snapshot": false,
"child_case_designated_in_ebms_as_residing_in_tsni_county_as_of_eligibility_snapshot": false,
"child_earned_income_amount": 0,
"child_in_open_active_snap_or_families_first_case_as_of_eligibility_snapshot": false,
"child_is_at_least_five_and_not_older_than_eighteen_as_of_age_snapshot": false,
"child_is_eligible_for_tsni": false
}
},
"Asset": {
"asset:1:1": {
"asset_fair_market_value": 0,
"asset_is_able_account": false,
"asset_is_licensed_vehicle": false,
"asset_is_used_for_household_transportation_or_to_obtain_or_continue_employment": false,
"resource_held_jointly_with_members_of_former_household": false,
"state_vehicle_allowance_standards_apply_in_lieu_of_default_vehicle_rule": false,
"vehicle_depended_on_to_carry_household_fuel_or_water": false,
"vehicle_necessary_for_transport_of_physically_disabled_household_member": false,
"vehicle_provides_household_primary_source_of_fuel_or_water": false,
"vehicle_used_to_produce_earned_income": false
}
},
"Business": {
"business:1:1": {
"organization_or_institution_applies_on_behalf_of_individual": false,
"receives_and_spends_snap_benefits_for_food_prepared_or_served_to_individual": false,
"recognized_as_nonprofit_by_tdmhsas": false,
"recognized_as_tax_exempt_organization_by_irs": false,
"tdmhsas_issued_acknowledgment_letter_for_facility_purpose": false,
"tdmhsas_provided_license": false
}
},
"Payment": {
"payment:1:1": {
"amount_is_carried_forward_from_past_billing_periods": false,
"amount_received_and_used_for_third_party_non_household_member": 0,
"annual_contribution_contract_entered_into_before_statutory_cutoff": false,
"annual_contribution_contract_under_section_23_us_housing_act": false,
"compensation_for_services_performed": false,
"current_billed_or_due_expense_amount": 0,
"expense_cost_is_described_in_this_chapter": false,
"expense_is_billed_or_otherwise_due_in_month": false,
"home_repair_charge_has_been_or_will_be_reimbursed_by_private_or_public_relief_agency_insurance_or_other_source": false,
"household_makes_money_payment_for_service": false,
"household_member_is_student_at_least_half_time_in_elementary_high_school_or_high_school_equivalency_classes": false,
"household_member_is_under_age_18": false,
"household_member_lives_with_natural_adoptive_or_step_parent": false,
"household_member_under_control_of_household_member_other_than_parent": false,
"identifiable_non_household_member_care_portion": false,
"income_amount_in_three_month_period": 0,
"income_amount_per_quarter": 0,
"income_belongs_to_non_household_member_who_has_not_been_disqualified": false,
"income_excluded_or_disregarded": false,
"income_from_self_employment_enterprise": false,
"income_is_so_infrequent_or_irregular_that_it_cannot_be_reasonably_anticipated": false,
"income_received_in_exchange_for_physical_or_mental_labor": false,
"income_received_or_expected_during_snap_certification_period": false,
"income_received_too_infrequently_or_irregularly_to_be_reasonably_anticipated": false,
"intended_beneficiary_count": 1
}
}
},
"period": "2026-01"
},
"variables": [
"snap_benefit_amount",
"snap_net_income",
"snap_gross_monthly_income",
"snap_eligible"
]
}
},
{
"program_id": "snap",
"jurisdiction": "us-az",
"sample_request": {
"program_id": "snap",
"jurisdiction": "us-az",
"household": {
"entities": {
"Household": {
"household:1": {
"budgetary_unit_participant_count": 1,
"initial_month_proration_applies": false,
"minimum_na_allotment": 24,
"na_budgetary_unit_is_eligible": true,
"na_net_income": 0,
"prorated_initial_month_na_benefit": 0,
"snap_excess_shelter_deduction_for_net_income": 0,
"snap_gross_monthly_earned_income": 0,
"snap_total_monthly_unearned_income": 0,
"thrifty_food_plan_amount_for_budgetary_unit_size": 292
}
}
},
"period": "2026-01"
},
"variables": [
"snap_benefit_amount",
"snap_net_income",
"snap_gross_monthly_income",
"snap_eligible"
]
}
}
]
}
},
"meta": {
"request_id": "209afaa5-b405-457a-a8e8-3d9a2ddffab8",
"api_version": "0.1.0",
"environment": "local"
}
}list_programsGET/v1/programsrules:read
Programs discoverable in the configured rule index, including programs that are encoded but not yet executable by the runtime. For the executable subset with input schemas, use list_runtime_packages.
No arguments.
{}{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "list_programs"
}
}curl -s https://api.axiom.org/v1/programs \
-H "x-api-key: $AXIOM_API_KEY"{
"status": "ok",
"data": {
"programs": [
{
"id": "co-snap",
"name": "US Co Co SNAP",
"jurisdiction": "us-co",
"description": "RuleSpecs indexed for co-snap in us-co.",
"rule_count": 1,
"status": "available"
},
{
"id": "medicaid",
"name": "US Co Medicaid",
"jurisdiction": "us-co",
"description": "RuleSpecs indexed for medicaid in us-co.",
"rule_count": 1,
"status": "available"
}
]
},
"meta": {
"request_id": "06e2c1a5-eab4-4a01-a9fe-a52b23ba2201",
"api_version": "0.1.0",
"environment": "staging"
}
}list_runtime_packagesGET/v1/runtime/packagesrules:read
Programs executable by the connected calculation runtime. Never hardcode program ids — list the packages, then read one with get_runtime_package before calculating.
No arguments.
{}{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "list_runtime_packages"
}
}curl -s https://api.axiom.org/v1/runtime/packages \
-H "x-api-key: $AXIOM_API_KEY"{
"status": "ok",
"data": {
"packages": [
{
"program_id": "co-snap",
"jurisdiction": "us-co",
"runtime_id": "fixture-snap-runtime",
"mode": "fixture",
"status": "ready",
"default_outputs": [
"snap_benefit_amount",
"snap_net_income"
],
"output_count": 7,
"entity_count": 2
},
{
"program_id": "snap",
"jurisdiction": "us-az",
"runtime_id": "fixture-snap-runtime",
"mode": "fixture",
"status": "ready",
"default_outputs": [
"snap_benefit_amount",
"snap_net_income"
],
"output_count": 7,
"entity_count": 2
}
]
},
"meta": {
"request_id": "7c384d7b-4f9d-4fca-ab8c-8cd3e0df24a1",
"api_version": "0.1.0",
"environment": "staging"
}
}get_runtime_packageGET/v1/runtime/packages/{jurisdiction}/{program_id}rules:read
Full contract for one executable package: entities, inputs with types and defaults, outputs, aliases, and a ready-to-run sample_request. Read this first — it is the schema that makes a calculate_household call reliable instead of guessed.
| Argument | Type | Required | Notes |
|---|---|---|---|
jurisdiction | string | yes | e.g. us-co |
program_id | string | yes | e.g. co-snap |
{
"jurisdiction": "us-co",
"program_id": "co-snap"
}{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "get_runtime_package",
"arguments": {
"jurisdiction": "us-co",
"program_id": "co-snap"
}
}
}curl -s https://api.axiom.org/v1/runtime/packages/us-co/co-snap \
-H "x-api-key: $AXIOM_API_KEY"{
"status": "ok",
"data": {
"package": {
"program_id": "co-snap",
"jurisdiction": "us-co",
"runtime_id": "fixture-snap-runtime",
"mode": "fixture",
"status": "ready",
"default_outputs": [
"snap_benefit_amount",
"snap_net_income"
],
"output_count": 7,
"entity_count": 2,
"default_period": "2026-01",
"outputs": [
{
"name": "snap_benefit_amount"
},
{
"name": "snap_net_income"
},
{
"name": "snap_gross_monthly_income"
},
{
"name": "snap_standard_deduction"
},
{
"name": "snap_excess_shelter_deduction"
},
{
"name": "snap_maximum_allotment"
},
{
"name": "snap_household_size"
}
],
"entities": [
{
"entity": "Household",
"id_template": "unit_1",
"count": 1,
"inputs": [
{
"name": "household_size",
"dtype": "integer",
"default": 1
},
{
"name": "snap_gross_monthly_income",
"dtype": "decimal",
"default": 0
},
{
"name": "shelter_costs",
"dtype": "decimal",
"default": 0
},
{
"name": "dependent_care_deduction",
"dtype": "decimal",
"default": 0
},
{
"name": "child_support_deduction",
"dtype": "decimal",
"default": 0
}
]
},
{
"entity": "Person",
"id_template": "person_1",
"count_from": "household_size",
"inputs": [
{
"name": "age",
"dtype": "integer",
"default": 30
}
]
}
],
"sample_request": {
"program_id": "co-snap",
"jurisdiction": "us-co",
"household": {
"people": {
"person_1": {
"age": 42
},
"person_2": {
"age": 9
}
},
"spm_units": {
"unit_1": {
"household_size": 2,
"snap_gross_monthly_income": 1200,
"shelter_costs": 900
}
}
},
"variables": [
"snap_benefit_amount",
"snap_net_income"
]
}
}
},
"meta": {
"request_id": "b8ef01ad-3582-4f62-b071-6007472e87f5",
"api_version": "0.1.0",
"environment": "staging"
}
}search_rulesPOST/v1/searchrules:read
Search encoded and source-linked rules. Pass jurisdiction or program_id whenever the user names a location or benefit program — filters cut noise dramatically in a multi-jurisdiction index. Result rows carry the stable rule id, citation path, program id, and encoding status.
| Argument | Type | Required | Notes |
|---|---|---|---|
query | string | yes | 2–500 characters |
jurisdiction | string | no | e.g. us-co |
program_id | string | no | e.g. co-snap |
limit | integer | no | 1–50, default 20 |
{
"query": "gross income test",
"jurisdiction": "us-az",
"limit": 3
}{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "search_rules",
"arguments": {
"query": "gross income test",
"jurisdiction": "us-az",
"limit": 3
}
}
}curl -s -X POST https://api.axiom.org/v1/search \
-H "x-api-key: $AXIOM_API_KEY" \
-H "content-type: application/json" \
-d '{"query":"gross income test","jurisdiction":"us-az","limit":3}'{
"status": "ok",
"data": {
"query": "gross income test",
"results": [
{
"id": "us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test",
"citation_path": "us-az/policy/des/faa5/na-eligibility-and-benefit-determination/gross-income-test",
"name": "Faa5 Na Eligibility And Benefit Determination Gross Income Test",
"jurisdiction": "us-az",
"program_id": "snap",
"document_class": "policy",
"status": "encoded",
"source_count": 1
},
{
"id": "us-az.des_faa5_na_eligibility_and_benefit_determination_net_income_test",
"citation_path": "us-az/policy/des/faa5/na-eligibility-and-benefit-determination/net-income-test",
"name": "Faa5 Na Eligibility And Benefit Determination Net Income Test",
"jurisdiction": "us-az",
"program_id": "snap",
"document_class": "policy",
"status": "encoded",
"source_count": 1
},
{
"id": "us-az.des_faa5_ca_benefit_determination_payment_standard_test",
"citation_path": "us-az/policy/des/faa5/ca-benefit-determination/payment-standard-test",
"name": "Faa5 Ca Benefit Determination Payment Standard Test",
"jurisdiction": "us-az",
"program_id": "rulespec",
"document_class": "policy",
"status": "encoded",
"source_count": 1
}
]
},
"meta": {
"request_id": "2080dde2-aa6b-4fbf-a60f-8b8eb3336d0c",
"api_version": "0.1.0",
"environment": "staging"
}
}get_ruleGET/v1/rules/{rule_id}rules:read
Read one rule by stable rule id (us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test) or citation path (us-az/policy/des/faa5/na/gross-income-test) — slashes in citation paths are preserved. Returns the rule summary, symbols, provenance, upstream dependencies, and downstream dependents.
| Argument | Type | Required | Notes |
|---|---|---|---|
rule_id | string | yes | stable id or citation path |
{
"rule_id": "us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test"
}{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "get_rule",
"arguments": {
"rule_id": "us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test"
}
}
}curl -s https://api.axiom.org/v1/rules/us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test \
-H "x-api-key: $AXIOM_API_KEY"{
"status": "ok",
"data": {
"rule": {
"id": "us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test",
"citation_path": "us-az/policy/des/faa5/na-eligibility-and-benefit-determination/gross-income-test",
"name": "Faa5 Na Eligibility And Benefit Determination Gross Income Test",
"jurisdiction": "us-az",
"program_id": "snap",
"document_class": "policy",
"status": "encoded",
"source_count": 1,
"summary": "The gross income test is applied in eligibility and benefit determinations at 130% or 185% of FPL. Gross income is all countable income received by the budgetary unit, excluding farm self-employment loss; elderly/disabled units use only the net income test, and categorically eligible units need neither gross nor net income tests.",
"symbols": [
"standard_gross_income_fpl_rate",
"expanded_gross_income_fpl_rate",
"na_gross_income_for_income_test",
"applicable_na_gross_monthly_income_standard",
"na_gross_income_test_required",
"na_gross_income_test_passes",
"na_application_denied_due_to_gross_income_test",
"total_countable_income_received_by_budgetary_unit_excluding_farm_self_employment_loss",
"expanded_gross_income_test_applies",
"federal_poverty_level_for_budgetary_unit_size",
"budgetary_unit_contains_elderly_or_disabled_participant",
"budgetary_unit_is_categorically_eligible"
],
"dependencies": [],
"dependents": [],
"version": "current",
"provenance": {
"rulespec_repo": "rulespec-us-az",
"rulespec_path": "policies/des/faa5/na-eligibility-and-benefit-determination/gross-income-test.yaml",
"rulespec_branch": "main",
"source_release": "current"
}
}
},
"meta": {
"request_id": "7d177d7f-896d-4655-9a66-858efa1de907",
"api_version": "0.1.0",
"environment": "staging"
}
}get_rule_sourcesGET/v1/rules/{rule_id}/sourcessources:read
Source and provenance references for one rule — the legal citations behind the encoding. Use this whenever an answer needs to cite statute, regulation, or agency policy rather than just the encoded value.
| Argument | Type | Required | Notes |
|---|---|---|---|
rule_id | string | yes | stable id or citation path |
{
"rule_id": "us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test"
}{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "get_rule_sources",
"arguments": {
"rule_id": "us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test"
}
}
}curl -s https://api.axiom.org/v1/rules/us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test/sources \
-H "x-api-key: $AXIOM_API_KEY"{
"status": "ok",
"data": {
"rule": {
"id": "us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test",
"citation_path": "us-az/policy/des/faa5/na-eligibility-and-benefit-determination/gross-income-test",
"name": "Faa5 Na Eligibility And Benefit Determination Gross Income Test",
"jurisdiction": "us-az",
"program_id": "snap",
"document_class": "policy",
"status": "encoded",
"source_count": 1
},
"sources": [
{
"id": "rulespec:us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test",
"citation_path": "us-az/policy/des/faa5/na-eligibility-and-benefit-determination/gross-income-test",
"label": "rulespec-us-az:policies/des/faa5/na-eligibility-and-benefit-determination/gross-income-test.yaml",
"url": "https://github.com/TheAxiomFoundation/rulespec-us-az/blob/main/policies/des/faa5/na-eligibility-and-benefit-determination/gross-income-test.yaml",
"quote": null,
"source_type": "repository"
}
]
},
"meta": {
"request_id": "9bf8b6ce-81c3-4cd7-861c-1aac624a802e",
"api_version": "0.1.0",
"environment": "staging"
}
}get_rule_dependenciesGET/v1/rules/{rule_id}/dependenciesgraphs:read
Upstream dependencies and downstream dependents for one rule. Use it to answer “what feeds this calculation” and “what breaks if this changes” questions before proposing amendments or debugging a surprising result.
| Argument | Type | Required | Notes |
|---|---|---|---|
rule_id | string | yes | stable id or citation path |
{
"rule_id": "us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test"
}{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "get_rule_dependencies",
"arguments": {
"rule_id": "us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test"
}
}
}curl -s https://api.axiom.org/v1/rules/us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test/dependencies \
-H "x-api-key: $AXIOM_API_KEY"{
"status": "ok",
"data": {
"rule": {
"id": "us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test",
"citation_path": "us-az/policy/des/faa5/na-eligibility-and-benefit-determination/gross-income-test",
"name": "Faa5 Na Eligibility And Benefit Determination Gross Income Test",
"jurisdiction": "us-az",
"program_id": "snap",
"document_class": "policy",
"status": "encoded",
"source_count": 1
},
"dependencies": [],
"dependents": []
},
"meta": {
"request_id": "be07a849-3932-4e57-aea1-2c53d0a998db",
"api_version": "0.1.0",
"environment": "staging"
}
}calculate_householdPOST/v1/calculatecalculate:run
Run an executable package for a household payload. The result returns outputs for the requested variables plus a trace attributing every value to the rule that produced it — explain results from the trace, not from memory. Household shape and variable names come from get_runtime_package; the package’s sample_request is a working starting point.
| Argument | Type | Required | Notes |
|---|---|---|---|
program_id | string | yes | from the package list |
jurisdiction | string | yes | from the package list |
household | object | yes | entities per the package schema |
variables | string[] | no | ≤ 100 output names; defaults per package |
{
"program_id": "co-snap",
"jurisdiction": "us-co",
"household": {
"people": {
"person_1": {
"age": 42
},
"person_2": {
"age": 9
}
},
"spm_units": {
"unit_1": {
"household_size": 2,
"snap_gross_monthly_income": 1200,
"shelter_costs": 900
}
}
},
"variables": [
"snap_benefit_amount",
"snap_net_income"
]
}{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "calculate_household",
"arguments": {
"program_id": "co-snap",
"jurisdiction": "us-co",
"household": {
"people": {
"person_1": {
"age": 42
},
"person_2": {
"age": 9
}
},
"spm_units": {
"unit_1": {
"household_size": 2,
"snap_gross_monthly_income": 1200,
"shelter_costs": 900
}
}
},
"variables": [
"snap_benefit_amount",
"snap_net_income"
]
}
}
}curl -s -X POST https://api.axiom.org/v1/calculate \
-H "x-api-key: $AXIOM_API_KEY" \
-H "content-type: application/json" \
-d '{"program_id":"co-snap","jurisdiction":"us-co","household":{"people":{"person_1":{"age":42},"person_2":{"age":9}},"spm_units":{"unit_1":{"household_size":2,"snap_gross_monthly_income":1200,"shelter_costs":900}}},"variables":["snap_benefit_amount","snap_net_income"]}'{
"status": "ok",
"data": {
"engine": "axiom",
"runtime": {
"id": "fixture-snap-runtime",
"mode": "fixture"
},
"program_id": "co-snap",
"jurisdiction": "us-co",
"outputs": {
"snap_benefit_amount": 339,
"snap_net_income": 692
},
"trace": [
{
"rule_id": "us-co.cdhs_snap_fy_2026_benefit_calculation",
"variable": "snap_benefit_amount",
"value": 339,
"sources": [
"rulespec:us-co.cdhs_snap_fy_2026_benefit_calculation"
]
},
{
"rule_id": "us-co.cdhs_snap_fy_2026_benefit_calculation",
"variable": "snap_net_income",
"value": 692,
"sources": [
"rulespec:us-co.cdhs_snap_fy_2026_benefit_calculation"
]
}
],
"warnings": [
"Experimental fixture runtime for API integration and parity harness development; not an authoritative eligibility determination."
]
},
"meta": {
"request_id": "0f1a6c89-be3c-48e5-81ed-b9df5b166d71",
"api_version": "0.1.0",
"environment": "staging"
}
}calculate_batchPOST/v1/calculate/batchcalculate:run
Run up to 25 calculations in one synchronous request. Entries execute concurrently and results return positionally — results[i] corresponds to requests[i], each independently ok or error. Use it to compare scenarios (income sweeps, household variants) in a single tool call.
| Argument | Type | Required | Notes |
|---|---|---|---|
requests | object[] | yes | 1–25 calculate requests |
{
"requests": [
{
"program_id": "co-snap",
"jurisdiction": "us-co",
"household": {
"people": {
"person_1": {
"age": 42
},
"person_2": {
"age": 9
}
},
"spm_units": {
"unit_1": {
"household_size": 2,
"snap_gross_monthly_income": 1200,
"shelter_costs": 900
}
}
},
"variables": [
"snap_benefit_amount",
"snap_net_income"
]
}
]
}{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "calculate_batch",
"arguments": {
"requests": [
{
"program_id": "co-snap",
"jurisdiction": "us-co",
"household": {
"people": {
"person_1": {
"age": 42
},
"person_2": {
"age": 9
}
},
"spm_units": {
"unit_1": {
"household_size": 2,
"snap_gross_monthly_income": 1200,
"shelter_costs": 900
}
}
},
"variables": [
"snap_benefit_amount",
"snap_net_income"
]
}
]
}
}
}curl -s -X POST https://api.axiom.org/v1/calculate/batch \
-H "x-api-key: $AXIOM_API_KEY" \
-H "content-type: application/json" \
-d '{"requests":[{"program_id":"co-snap","jurisdiction":"us-co","household":{"people":{"person_1":{"age":42},"person_2":{"age":9}},"spm_units":{"unit_1":{"household_size":2,"snap_gross_monthly_income":1200,"shelter_costs":900}}},"variables":["snap_benefit_amount","snap_net_income"]}]}'{
"status": "ok",
"data": {
"summary": {
"total": 2,
"succeeded": 2,
"failed": 0
},
"results": [
{
"status": "ok",
"result": {
"engine": "axiom",
"runtime": {
"id": "axiom-rules-engine:co-snap",
"mode": "compiled"
},
"program_id": "co-snap",
"jurisdiction": "us-co",
"outputs": {
"snap_benefit_amount": 478
},
"trace": [
{
"rule_id": "snap_allotment",
"variable": "snap_benefit_amount",
"value": 478,
"sources": [
"us-co:regulations/10-ccr-2506-1/4.207.2#snap_allotment"
]
}
],
"warnings": []
}
},
{
"status": "ok",
"result": {
"engine": "axiom",
"runtime": {
"id": "axiom-rules-engine:co-snap",
"mode": "compiled"
},
"program_id": "co-snap",
"jurisdiction": "us-co",
"outputs": {
"snap_benefit_amount": 478
},
"trace": [
{
"rule_id": "snap_allotment",
"variable": "snap_benefit_amount",
"value": 478,
"sources": [
"us-co:regulations/10-ccr-2506-1/4.207.2#snap_allotment"
]
}
],
"warnings": []
}
}
]
},
"meta": {
"request_id": "ab08630f-311d-44b6-83b0-d6253d9ad546",
"api_version": "0.1.0",
"environment": "local"
}
}submit_calculation_jobPOST/v1/jobs/calculatecalculate:run
Submit up to 50 calculations as a detached async job. Returns a job id immediately; execution proceeds with bounded concurrency and results are retained for 24 hours, visible only to the submitting API key. Poll with get_calculation_job.
| Argument | Type | Required | Notes |
|---|---|---|---|
requests | object[] | yes | 1–50 calculate requests |
{
"requests": [
{
"program_id": "co-snap",
"jurisdiction": "us-co",
"household": {
"people": {
"person_1": {
"age": 42
},
"person_2": {
"age": 9
}
},
"spm_units": {
"unit_1": {
"household_size": 2,
"snap_gross_monthly_income": 1200,
"shelter_costs": 900
}
}
},
"variables": [
"snap_benefit_amount",
"snap_net_income"
]
}
]
}{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "submit_calculation_job",
"arguments": {
"requests": [
{
"program_id": "co-snap",
"jurisdiction": "us-co",
"household": {
"people": {
"person_1": {
"age": 42
},
"person_2": {
"age": 9
}
},
"spm_units": {
"unit_1": {
"household_size": 2,
"snap_gross_monthly_income": 1200,
"shelter_costs": 900
}
}
},
"variables": [
"snap_benefit_amount",
"snap_net_income"
]
}
]
}
}
}curl -s -X POST https://api.axiom.org/v1/jobs/calculate \
-H "x-api-key: $AXIOM_API_KEY" \
-H "content-type: application/json" \
-d '{"requests":[{"program_id":"co-snap","jurisdiction":"us-co","household":{"people":{"person_1":{"age":42},"person_2":{"age":9}},"spm_units":{"unit_1":{"household_size":2,"snap_gross_monthly_income":1200,"shelter_costs":900}}},"variables":["snap_benefit_amount","snap_net_income"]}]}'{
"status": "ok",
"data": {
"job_id": "job_1be4b669-8aa9-4d6b-be09-525fb29176a7",
"status": "running",
"total": 1,
"status_url": "/v1/jobs/job_1be4b669-8aa9-4d6b-be09-525fb29176a7",
"durable": false
},
"meta": {
"request_id": "684960f4-a6f2-4b83-abdf-8c0f9cc1c5c0",
"api_version": "0.1.0",
"environment": "local"
}
}get_calculation_jobGET/v1/jobs/{job_id}calculate:run
Status, progress, and results for a job created with submit_calculation_job. Unknown ids and jobs created by other keys are both 404.
| Argument | Type | Required | Notes |
|---|---|---|---|
job_id | string | yes | from submit_calculation_job |
{
"job_id": "job_c6fd9fab-ec19-4247-9cde-cd27e0c8cc4b"
}{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "get_calculation_job",
"arguments": {
"job_id": "job_c6fd9fab-ec19-4247-9cde-cd27e0c8cc4b"
}
}
}curl -s https://api.axiom.org/v1/jobs/job_c6fd9fab-ec19-4247-9cde-cd27e0c8cc4b \
-H "x-api-key: $AXIOM_API_KEY"{
"status": "ok",
"data": {
"id": "job_c6fd9fab-ec19-4247-9cde-cd27e0c8cc4b",
"status": "succeeded",
"created_at": "2026-07-02T04:16:46.848Z",
"total": 1,
"completed": 1,
"api_key_id": null,
"started_at": "2026-07-02T04:16:46.848Z",
"results": [
{
"status": "ok",
"result": {
"engine": "axiom",
"runtime": {
"id": "axiom-rules-engine:co-snap",
"mode": "compiled"
},
"program_id": "co-snap",
"jurisdiction": "us-co",
"outputs": {
"snap_benefit_amount": 478
},
"trace": [
{
"rule_id": "snap_allotment",
"variable": "snap_benefit_amount",
"value": 478,
"sources": [
"us-co:regulations/10-ccr-2506-1/4.207.2#snap_allotment"
]
}
],
"warnings": []
}
}
],
"finished_at": "2026-07-02T04:16:46.865Z"
},
"meta": {
"request_id": "37678d1a-7545-4b43-9db1-50ff2725831d",
"api_version": "0.1.0",
"environment": "local"
}
}list_parity_casesGET/v1/parity/casesadmin:parity
Canonical runtime parity cases: the calculation request, expected outputs, trace variables, notes, and — where present — external_comparisons metadata mapping Axiom variables to another engine’s outputs (request shape, output paths, transforms, tolerances). Use it to see what the deployment verifies and how it lines up against engines such as PolicyEngine.
No arguments.
{}{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "list_parity_cases"
}
}curl -s https://api.axiom.org/v1/parity/cases \
-H "x-api-key: $AXIOM_API_KEY"{
"status": "ok",
"data": {
"cases": [
{
"id": "co-snap-us-co-family-1",
"description": "Colorado SNAP canonical two-person household.",
"program_id": "co-snap",
"jurisdiction": "us-co",
"runtime_supported": true,
"variables": [
"snap_benefit_amount",
"snap_net_income"
],
"axiom_request": {
"program_id": "co-snap",
"jurisdiction": "us-co",
"household": {
"people": {
"person_1": {
"age": 42
},
"person_2": {
"age": 9
}
},
"spm_units": {
"unit_1": {
"household_size": 2,
"snap_gross_monthly_income": 1200,
"shelter_costs": 900
}
}
},
"variables": [
"snap_benefit_amount",
"snap_net_income"
]
},
"expected_axiom_outputs": {
"snap_benefit_amount": 478,
"snap_net_income": 226.5
},
"trace_variables": [
"gross_income",
"snap_standard_deduction",
"snap_earned_income_deduction",
"snap_net_income_pre_shelter",
"snap_standard_utility_allowance",
"shelter_costs",
"excess_shelter_deduction",
"snap_net_income",
"snap_maximum_allotment",
"snap_household_food_contribution",
"snap_benefit_amount"
],
"notes": [
"Canonical values are monthly. Convenience input shelter_costs is treated as total shelter costs for this Axiom case.",
"Utility allowance outputs are requested separately so client parity tools can identify whether another engine adds them by default."
],
"external_comparisons": [
{
"id": "co-snap-policyengine-current",
"engine": "policyengine",
"description": "PolicyEngine current comparison for the Colorado SNAP canonical two-person household.",
"request": {
"country_id": "us",
"version": "current",
"household": {
"households": {
"household": {
"members": [
"adult",
"child"
],
"state_code_str": {
"2026": "CO"
}
}
},
"people": {
"adult": {
"age": {
"2026": 42
},
"employment_income": {
"2026": 14400
}
},
"child": {
"age": {
"2026": 9
}
}
},
"spm_units": {
"spm_unit": {
"members": [
"adult",
"child"
],
"snap": {
"2026": null
},
"snap_net_income": {
"2026": null
},
"snap_assets": {
"2026": 0
},
"housing_cost": {
"2026": 10800
},
"snap_standard_utility_allowance": {
"2026": null
},
"snap_utility_allowance": {
"2026": null
},
"snap_gross_income": {
"2026": null
},
"snap_standard_deduction": {
"2026": null
},
"snap_earned_income_deduction": {
"2026": null
},
"snap_net_income_pre_shelter": {
"2026": null
},
"snap_excess_shelter_expense_deduction": {
"2026": null
},
"snap_max_allotment": {
"2026": null
},
"snap_expected_contribution": {
"2026": null
}
}
},
"tax_units": {
"tax_unit": {
"members": [
"adult",
"child"
]
}
}
}
},
"mappings": [
{
"axiom_variable": "snap_benefit_amount",
"external_path": "result.spm_units.spm_unit.snap.2026",
"transform": "annual_to_monthly"
},
{
"axiom_variable": "snap_net_income",
"external_path": "result.spm_units.spm_unit.snap_net_income.2026",
"transform": "annual_to_monthly"
}
],
"trace_mappings": [
{
"label": "Gross income",
"axiom_variable": "gross_income",
"external_variable": "snap_gross_income",
"external_paths": [
"result.spm_units.spm_unit.snap_gross_income.2026"
],
"transform": "annual_to_monthly"
},
{
"label": "Standard deduction",
"axiom_variable": "snap_standard_deduction",
"external_variable": "snap_standard_deduction",
"external_paths": [
"result.spm_units.spm_unit.snap_standard_deduction.2026"
],
"transform": "annual_to_monthly"
},
{
"label": "Earned income deduction",
"axiom_variable": "snap_earned_income_deduction",
"external_variable": "snap_earned_income_deduction",
"external_paths": [
"result.spm_units.spm_unit.snap_earned_income_deduction.2026"
],
"transform": "annual_to_monthly"
},
{
"label": "Net income before shelter",
"axiom_variable": "snap_net_income_pre_shelter",
"external_variable": "snap_net_income_pre_shelter",
"external_paths": [
"result.spm_units.spm_unit.snap_net_income_pre_shelter.2026"
],
"transform": "annual_to_monthly"
},
{
"label": "Utility allowance",
"axiom_variable": "snap_standard_utility_allowance",
"external_variable": "snap_utility_allowance",
"external_paths": [
"result.spm_units.spm_unit.snap_utility_allowance.2026"
],
"transform": "annual_to_monthly"
},
{
"label": "Shelter costs used",
"axiom_variable": "shelter_costs",
"external_variable": "housing_cost + snap_utility_allowance",
"external_paths": [
"result.spm_units.spm_unit.housing_cost.2026",
"result.spm_units.spm_unit.snap_utility_allowance.2026"
],
"transform": "annual_to_monthly_sum"
},
{
"label": "Excess shelter deduction",
"axiom_variable": "excess_shelter_deduction",
"external_variable": "snap_excess_shelter_expense_deduction",
"external_paths": [
"result.spm_units.spm_unit.snap_excess_shelter_expense_deduction.2026"
],
"transform": "annual_to_monthly"
},
{
"label": "Net income",
"axiom_variable": "snap_net_income",
"external_variable": "snap_net_income",
"external_paths": [
"result.spm_units.spm_unit.snap_net_income.2026"
],
"transform": "annual_to_monthly"
},
{
"label": "Maximum allotment",
"axiom_variable": "snap_maximum_allotment",
"external_variable": "snap_max_allotment",
"external_paths": [
"result.spm_units.spm_unit.snap_max_allotment.2026"
],
"transform": "annual_to_monthly"
},
{
"label": "Expected contribution",
"axiom_variable": "snap_household_food_contribution",
"external_variable": "snap_expected_contribution",
"external_paths": [
"result.spm_units.spm_unit.snap_expected_contribution.2026"
],
"transform": "annual_to_monthly"
},
{
"label": "Benefit amount",
"axiom_variable": "snap_benefit_amount",
"external_variable": "snap",
"external_paths": [
"result.spm_units.spm_unit.snap.2026"
],
"transform": "annual_to_monthly"
}
],
"notes": [
"PolicyEngine employment_income is annual, so this request sends $14,400 to represent $1,200/month.",
"PolicyEngine housing_cost is annual in the 2026 request, so this request sends $10,800 to represent $900/month.",
"PolicyEngine current adds the Colorado SNAP utility allowance in this case; the Axiom canonical case treats shelter_costs as the total shelter input and has zero utility allowance outputs."
],
"tolerance": {
"amount": 0.01
}
}
],
"tolerance": {
"amount": 0.01
}
}
]
},
"meta": {
"request_id": "19b402b5-995d-4cfe-8b4f-636409518362",
"api_version": "0.1.0",
"environment": "staging"
}
}run_parity_casesPOST/v1/parity/runadmin:parity
Execute every parity case against the live runtime and report variable-level differences: a summary (matching / different / errored / skipped), per-case outputs vs expected_outputs, requested trace_outputs, and the calculation trace. Use it as a migration check and to explain which variable diverges when a result differs from another engine.
No arguments.
{}{
"jsonrpc": "2.0",
"id": 7,
"method": "tools/call",
"params": {
"name": "run_parity_cases"
}
}curl -s -X POST https://api.axiom.org/v1/parity/run \
-H "x-api-key: $AXIOM_API_KEY" \
-H "content-type: application/json" \
-d '{}'{
"status": "ok",
"data": {
"summary": {
"total": 3,
"matching": 3,
"different": 0,
"errored": 0,
"skipped": 0
},
"results": [
{
"id": "co-snap-us-co-family-1",
"description": "Colorado SNAP canonical two-person household.",
"program_id": "co-snap",
"jurisdiction": "us-co",
"status": "matching",
"outputs": {
"snap_benefit_amount": 478,
"snap_net_income": 226.5
},
"expected_outputs": {
"snap_benefit_amount": 478,
"snap_net_income": 226.5
},
"trace_outputs": {
"gross_income": 1200,
"snap_standard_deduction": 209,
"snap_earned_income_deduction": 240,
"snap_net_income_pre_shelter": 751,
"snap_standard_utility_allowance": 0,
"shelter_costs": 900,
"excess_shelter_deduction": 524.5,
"snap_net_income": 226.5,
"snap_maximum_allotment": 546,
"snap_household_food_contribution": 67.95,
"snap_benefit_amount": 478
},
"calculation_trace": [
{
"rule_id": "snap_allotment",
"variable": "snap_benefit_amount",
"value": 478,
"sources": [
"us-co:regulations/10-ccr-2506-1/4.207.2#snap_allotment"
]
},
{
"rule_id": "snap_net_income",
"variable": "snap_net_income",
"value": 226.5,
"sources": [
"us:statutes/7/2014/e/6/A#snap_net_income"
]
},
{
"rule_id": "gross_income",
"variable": "gross_income",
"value": 1200,
"sources": [
"us-co:policies/cdhs/snap/fy-2026-benefit-calculation#gross_income"
]
},
{
"rule_id": "snap_standard_deduction",
"variable": "snap_standard_deduction",
"value": 209,
"sources": [
"us:policies/usda/snap/fy-2026-cola/deductions#snap_standard_deduction"
]
},
{
"rule_id": "snap_earned_income_deduction",
"variable": "snap_earned_income_deduction",
"value": 240,
"sources": [
"us:statutes/7/2014/e/2#snap_earned_income_deduction"
]
},
{
"rule_id": "snap_net_income_pre_shelter",
"variable": "snap_net_income_pre_shelter",
"value": 751,
"sources": [
"us:statutes/7/2014/e/6/A#snap_net_income_pre_shelter"
]
},
{
"rule_id": "snap_standard_utility_allowance",
"variable": "snap_standard_utility_allowance",
"value": 0,
"sources": [
"us-co:regulations/10-ccr-2506-1/4.407.31#snap_standard_utility_allowance"
]
},
{
"rule_id": "shelter_costs",
"variable": "shelter_costs",
"value": 900,
"sources": [
"us-co:policies/cdhs/snap/fy-2026-benefit-calculation#shelter_costs"
]
},
{
"rule_id": "excess_shelter_deduction",
"variable": "excess_shelter_deduction",
"value": 524.5,
"sources": [
"us-co:regulations/10-ccr-2506-1/4.407.3#excess_shelter_deduction"
]
},
{
"rule_id": "snap_maximum_allotment",
"variable": "snap_maximum_allotment",
"value": 546,
"sources": [
"us:policies/usda/snap/fy-2026-cola/maximum-allotments#snap_maximum_allotment"
]
},
{
"rule_id": "snap_household_food_contribution",
"variable": "snap_household_food_contribution",
"value": 67.95,
"sources": [
"us:statutes/7/2017/a#snap_household_food_contribution"
]
}
],
"notes": [
"Canonical values are monthly. Convenience input shelter_costs is treated as total shelter costs for this Axiom case.",
"Utility allowance outputs are requested separately so client parity tools can identify whether another engine adds them by default."
],
"comparison": {
"status": "matching",
"changed": [],
"missing": [],
"extra": []
},
"runtime": {
"id": "axiom-rules-engine:co-snap",
"mode": "compiled"
},
"warnings": []
},
{
"id": "snap-us-az-family-1",
"description": "Arizona SNAP canonical three-person household using package-native compiled inputs.",
"program_id": "snap",
"jurisdiction": "us-az",
"status": "matching",
"outputs": {
"snap_benefit_amount": 335.4,
"snap_net_income": 1442,
"snap_gross_monthly_income": 1800,
"snap_eligible": true,
"snap_excess_shelter_deduction": 0
},
"expected_outputs": {
"snap_benefit_amount": 335.4,
"snap_net_income": 1442,
"snap_gross_monthly_income": 1800,
"snap_eligible": true,
"snap_excess_shelter_deduction": 0
},
"trace_outputs": {
"snap_gross_monthly_income": 1800,
"snap_excess_shelter_deduction": 0,
"snap_net_income": 1442,
"snap_maximum_allotment": 768,
"snap_regular_month_allotment": 335.4,
"snap_benefit_amount": 335.4
},
"calculation_trace": [
{
"rule_id": "snap_benefit",
"variable": "snap_benefit_amount",
"value": 335.4,
"sources": [
"snap_benefit"
]
},
{
"rule_id": "snap_net_income",
"variable": "snap_net_income",
"value": 1442,
"sources": [
"us-az:policies/des/faa5/na-eligibility-and-benefit-determination/fy-2026-benefit-calculation#snap_net_income"
]
},
{
"rule_id": "snap_gross_monthly_income",
"variable": "snap_gross_monthly_income",
"value": 1800,
"sources": [
"us-az:policies/des/faa5/na-eligibility-and-benefit-determination/fy-2026-benefit-calculation#snap_gross_monthly_income"
]
},
{
"rule_id": "snap_eligible",
"variable": "snap_eligible",
"value": true,
"sources": [
"us-az:policies/des/faa5/na-eligibility-and-benefit-determination/fy-2026-benefit-calculation#snap_eligible"
]
},
{
"rule_id": "snap_excess_shelter_deduction",
"variable": "snap_excess_shelter_deduction",
"value": 0,
"sources": [
"us-az:policies/des/faa5/na-eligibility-and-benefit-determination/fy-2026-benefit-calculation#snap_excess_shelter_deduction"
]
},
{
"rule_id": "snap_maximum_allotment",
"variable": "snap_maximum_allotment",
"value": 768,
"sources": [
"us-az:policies/des/faa5/na-eligibility-and-benefit-determination/fy-2026-benefit-calculation#snap_maximum_allotment"
]
},
{
"rule_id": "snap_regular_month_allotment",
"variable": "snap_regular_month_allotment",
"value": 335.4,
"sources": [
"us-az:policies/des/faa5/na-eligibility-and-benefit-determination/fy-2026-benefit-calculation#snap_regular_month_allotment"
]
}
],
"notes": [
"Canonical values are monthly. This Arizona SNAP case exercises the DES compiled package inputs exposed by the admitted artifact.",
"The Arizona package currently exposes package-native inputs rather than the broader generic SNAP household fact contract."
],
"comparison": {
"status": "matching",
"changed": [],
"missing": [],
"extra": []
},
"runtime": {
"id": "axiom-rules-engine:us-az-snap",
"mode": "compiled"
},
"warnings": []
},
{
"id": "universal-credit-uk-single-claimant-1",
"description": "UK Universal Credit canonical single claimant household.",
"program_id": "universal-credit",
"jurisdiction": "uk",
"status": "matching",
"outputs": {
"universal_credit_award_amount": 424.9,
"universal_credit_maximum_amount": 424.9,
"standard_allowance_amount": 424.9
},
"expected_outputs": {
"universal_credit_award_amount": 424.9,
"universal_credit_maximum_amount": 424.9,
"standard_allowance_amount": 424.9
},
"trace_outputs": {},
"calculation_trace": [
{
"rule_id": "universal_credit_award_amount",
"variable": "universal_credit_award_amount",
"value": 424.9,
"sources": [
"uk:statutes/ukpga/2012/5/8#universal_credit_award_amount"
]
},
{
"rule_id": "universal_credit_maximum_amount",
"variable": "universal_credit_maximum_amount",
"value": 424.9,
"sources": [
"uk:statutes/ukpga/2012/5/8#universal_credit_maximum_amount"
]
},
{
"rule_id": "standard_allowance_amount",
"variable": "standard_allowance_amount",
"value": 424.9,
"sources": [
"uk:regulations/uksi/2013/376/36#standard_allowance_amount"
]
}
],
"notes": [],
"comparison": {
"status": "matching",
"changed": [],
"missing": [],
"extra": []
},
"runtime": {
"id": "axiom-rules-engine:uk-universal-credit-fy-2026-27",
"mode": "compiled"
},
"warnings": []
}
],
"skipped_cases": []
},
"meta": {
"request_id": "0a489579-1c73-4365-910b-f2d0a1496d11",
"api_version": "0.1.0",
"environment": "local"
}
}Resources
Resources expose reference data MCP clients can attach as context without a tool call — useful for priming an agent with what the deployment supports. Contents are the pretty-printed API envelope, application/json.
| URI | Backed by | Contents |
|---|---|---|
axiom://capabilities | GET /v1/capabilities | API version, endpoints, repository and runtime status, sample requests |
axiom://programs | GET /v1/programs | programs discoverable in the rule index |
axiom://runtime/packages | GET /v1/runtime/packages | executable packages |
axiom://parity/cases | GET /v1/parity/cases | parity cases with expected outputs and external comparison metadata |
Resources are fetched when read, so they need the same scopes as the corresponding tools.
Prompts
Three prompt templates guide an agent through the intended tool sequences. Clients surface them as slash-commands or quick actions.
| Prompt | Arguments | Guides the agent to |
|---|---|---|
explain_rule_for_caseworker | rule_id | call get_rule + get_rule_sources, explain what the rule does, when it applies, and which facts it needs, citing the source references — without giving legal advice |
trace_household_result | program_id, jurisdiction | call get_runtime_package, then calculate_household with the user’s facts, and explain each output from the returned trace including rule ids and warnings |
find_missing_household_inputs | program_id, jurisdiction | compare the package’s entities, inputs, aliases, and defaults with the household facts supplied so far and return only what is missing or ambiguous |
Agent workflows
Answer a benefit question. list_runtime_packages → get_runtime_package (read inputs and aliases) → collect missing facts (find_missing_household_inputs) → calculate_household → explain each output from the trace. Example ask:
What would SNAP be for a single parent in Arizona earning $1,400/month with one child? Use the Axiom tools and show which rules produced the numbers.Explain a rule with citations. search_rules (with jurisdiction filter) → get_rule → get_rule_sources → answer in operational language, citing the returned references. Example ask:
Search Axiom for the Colorado SNAP utility allowance rules and explain them for a caseworker, with citations.Sweep scenarios in bulk. Build a list of calculate requests varying income, household size, or jurisdiction → calculate_batch for up to 25 synchronous results, or submit_calculation_job + get_calculation_job for up to 50 asynchronously. Results are positional: request i maps to result i. Example ask:
Calculate Colorado SNAP for this household at monthly incomes from $1,000 to $2,000 in $200 steps and chart where the benefit phases out.Verify a migration or compare engines. list_parity_cases (read expected outputs and external_comparisons) → run_parity_cases → report per-variable differences from trace_outputs. Example ask:
Run the Axiom parity cases and summarize any variable-level differences against the expected outputs.API coverage
Where every Axiom API endpoint surfaces in the MCP adapter. When the API grows an endpoint, this table (and usually the adapter) must be updated — CI enforces the table.
| Endpoint | MCP surface |
|---|---|
GET /v1/capabilities | get_capabilities · axiom://capabilities |
GET /v1/programs | list_programs · axiom://programs |
POST /v1/search | search_rules |
GET /v1/rules/{rule_id} | get_rule |
GET /v1/rules/{rule_id}/sources | get_rule_sources |
GET /v1/rules/{rule_id}/dependencies | get_rule_dependencies |
GET /v1/runtime/packages | list_runtime_packages · axiom://runtime/packages |
GET /v1/runtime/packages/{jurisdiction}/{program_id} | get_runtime_package |
GET /v1/runtime/packages/{jurisdiction}/{program_id}/graph | not exposed — visualization endpoint returning the rule DAG; call the HTTP API directly |
GET /v1/graph/compose | not exposed — compose-on-demand graph for any encoded rule or file; call the HTTP API directly |
POST /v1/household/{country_id}/calculate | not exposed — PolicyEngine wire-format compatibility surface for migrating partners; agents should use calculate_household with the native shape |
POST /v1/calculate | calculate_household |
POST /v1/calculate/batch | calculate_batch |
POST /v1/jobs/calculate | submit_calculation_job |
GET /v1/jobs/{job_id} | get_calculation_job |
GET /v1/parity/cases | list_parity_cases · axiom://parity/cases |
POST /v1/parity/run | run_parity_cases |
GET /v1/health, GET /v1/ready, GET /v1/version, GET /v1/openapi.json | not exposed — unauthenticated service plumbing; call the HTTP API directly |
POST /v1/keys/trial | not exposed — key bootstrap happens before the adapter is configured; issue a trial key with one curl, then set AXIOM_API_KEY |
GET /docs/validation | not exposed — human validation dashboard; agents read the underlying admin endpoints directly |
GET /v1/admin/analytics, GET /v1/admin/usage, GET /v1/admin/audit, GET /v1/admin/keys, POST /v1/admin/keys, POST /v1/admin/keys/{key_id}/revoke, GET /v1/admin/kill, POST /v1/admin/kill, GET /v1/admin/validation/runs, POST /v1/admin/validation/runs, GET /v1/admin/validation/runs/{run_id}, GET /v1/admin/validation/migration | not exposed — the admin plane is deliberately outside the agent surface |
Troubleshooting
| Symptom | Cause & fix |
|---|---|
| Client cannot start the server | Node too old — the package requires ≥ 20; check node --version where the client runs |
Every tool returns unauthorized | AXIOM_API_KEY missing from the client’s env block, or the key is expired/revoked |
insufficient_scope on one tool | the key lacks that tool’s scope — issue a broader key or drop the tool from the workflow |
rate_limited | respect error.retry_after from the tool error before retrying |
| Tool errors naming a timeout | slow upstream — raise AXIOM_API_TIMEOUT_MS |
Stale version via npx | pin the version (@axiom-foundation/mcp@x.y.z) or clear the npx cache |
| Anything protocol-level | reproduce with the MCP Inspector command from Install — it shows tools, raw frames, and results interactively |
Running npx -y @axiom-foundation/mcp in a terminal starts a stdio server that waits silently for a client — that is normal; stop it with Ctrl-C. Include meta.request_id from any tool result when reporting API issues.
Versioning & security
- The server’s MCP handshake advertises the npm package version — see npm for the current release. Releases are published to npm by GitHub Actions via OIDC trusted publishing with signed provenance; there are no long-lived publish tokens.
- The adapter exposes no shell execution, no arbitrary network fetch, no database access, and no write or admin operations. Its only outbound traffic is to the configured
AXIOM_API_BASE_URL. - The API key stays in the MCP client’s process environment; the server never logs it and never echoes it in results.
- Issues and source: github.com/TheAxiomFoundation/axiom-mcp.
GET /v1/admin/kill and POST /v1/admin/kill are not exposed through MCP; they remain part of the HTTP admin plane.