API Reference v0.1.0 · /v1 MCP ServerValidation OpenAPI Status

Overview

The Axiom API is the rule-native HTTP interface for searching, retrieving, explaining, and executing Axiom RuleSpecs — machine-readable encodings of statutes, regulations, and agency policy, with provenance back to the legal source.

EnvironmentBase URL
Productionhttps://api.axiom-foundation.org
Staginghttps://axiom-api-pavelmakarchuk-policy-engine.vercel.app (behind deployment protection)

https://axiom-api-eta.vercel.app remains a legacy alias of the same production deployment.

  • All endpoints live under /v1; breaking changes require a new version namespace.
  • Request and response bodies are JSON. The OpenAPI 3.1 contract is served at /v1/openapi.json without a key.
  • Every response carries an x-request-id header; send your own to have it echoed and stamped into meta.request_id. Quote it when reporting issues.
  • Responses are cache-control: no-store — do not cache beyond immediate use.

Quickstart

1 — Get an API key. Issue yourself a trial key — no signup, expires in 14 days, scoped to reads and calculation. Durable keys are issued by Axiom administrators. Store it in a secret manager; the server keeps only a hash.

curl -s -X POST https://api.axiom-foundation.org/v1/keys/trial
export AXIOM_API_KEY="axiom_..."   # from the response's data.key
export AXIOM_API_KEY="axiom_..."

2 — Discover what is executable. Never hardcode program ids; list the runtime packages and read each package’s inputs, outputs, and ready-to-run sample_request:

curl -s https://api.axiom-foundation.org/v1/runtime/packages \
  -H "x-api-key: $AXIOM_API_KEY"

3 — Calculate. Post a household to /v1/calculate. The response returns outputs for the variables you requested plus a trace attributing every value to the RuleSpec rule that produced it. You can also paste a key into the field in the header above and run every example on this page live with the Try it tab.

Authentication & scopes

All /v1 endpoints except /v1/health, /v1/ready, /v1/version, /v1/openapi.json, and /v1/keys/trial require an API key, in either header (if both are present, x-api-key wins):

x-api-key: <key>
Authorization: Bearer <key>

Every key carries scopes; * passes every check. A key that authenticates but lacks the required scope receives 403 insufficient_scope. A missing, unknown, expired, or revoked key receives 401 unauthorized — the response deliberately does not distinguish those cases.

ScopeGrants
rules:readcapabilities, programs, runtime packages, search, rule detail
sources:readrule source references
graphs:readrule dependency graphs
calculate:runhousehold calculation
admin:parityparity cases and runs
admin:analyticsusage analytics
admin:keyskey listing and runtime revocation

Any /v1 route not listed defaults to requiring rules:read.

No key yet? Issue yourself a trial key — no signup, 14-day expiry, rules:read + sources:read + graphs:read + calculate:run, 30 requests/minute. Durable keys and the admin:* scopes are issued by administrators.

Response envelope

Every JSON response uses one envelope. meta.request_id echoes your x-request-id header when provided, otherwise it is a server-generated UUID. meta.environment is one of local, dev, staging, production.

Success envelope
{
  "status": "ok",
  "data": {
    "\u2026": "\u2026"
  },
  "meta": {
    "request_id": "0f1a6c89-be3c-48e5-81ed-b9df5b166d71",
    "api_version": "0.1.0",
    "environment": "production"
  }
}
Error envelope — HTTP 401
{
  "status": "error",
  "error": {
    "code": "unauthorized",
    "message": "A valid API key is required."
  },
  "meta": {
    "request_id": "c99be9cf-a85b-4590-8045-22232efb79fe",
    "api_version": "0.1.0",
    "environment": "staging"
  }
}

An optional data object carries machine-readable detail, e.g. retry_after_seconds on 429s.

Errors

HTTPerror.codeMeaning
400invalid_requestMalformed JSON, missing/invalid field, or an input over its cap; the message states the exact constraint.
400invalid_householdCalculate household failed runtime validation (e.g. missing household size, negative income).
401unauthorizedMissing, unknown, expired, or revoked API key.
403insufficient_scopeKey lacks the required scope; the message names it.
404not_foundUnknown rule id, runtime package, key id, or route.
413payload_too_largeBody exceeds the byte limit (default 262,144 bytes).
400unsupported_parameterA reserved query parameter (currently as_of, for point-in-time retrieval) was supplied but is not yet supported.
422unsupported_programNo configured runtime package matches program_id/jurisdiction.
429rate_limitedPer-key rate limit exceeded.
429auth_throttledToo many failed authentication attempts from your client.
500internal_errorUnexpected server error; message is always generic — quote meta.request_id.
502runtime_errorThe calculation engine failed or timed out.
503not_ready/v1/ready only: a dependency is degraded or unavailable.
503auth_not_configuredAPI-key auth required but no keys configured server-side.
503store_unavailableAdmin operation needed the shared store and it was unreachable.
Validation example — HTTP 400
{
  "status": "error",
  "error": {
    "code": "invalid_request",
    "message": "`query` must be at least 2 characters."
  },
  "meta": {
    "request_id": "73106aa7-cd86-4f0f-a18c-6a1a63d98f93",
    "api_version": "0.1.0",
    "environment": "staging"
  }
}

From POST /v1/search with {{"query":"x"}}: one character violates the two-character minimum.

Rate limits & throttling

Per-key rate limits. Each key has a fixed-window limit (default 120 requests / 60 s; per-key overrides set at issuance), shared across all API instances. Every authenticated response includes:

x-ratelimit-limit: 120
x-ratelimit-remaining: 118
x-ratelimit-reset: 1782941434

x-ratelimit-reset is a Unix timestamp (seconds) for the end of the current window. Exceeding the limit returns 429 rate_limited with a retry-after header and data.retry_after_seconds. Back off until the window resets.

Failed-auth throttling. After 20 failed authentication attempts within 300 seconds from one client (first x-forwarded-for hop), all further requests from that client — including ones with a valid key — receive 429 auth_throttled until the window expires. Successful authentication never counts toward the throttle.

Request limits & CORS

LimitValueOn violation
Request body size262,144 bytes (256 KiB)413 payload_too_large
query length2–500 characters400 invalid_request
program_id, jurisdiction≤ 120 characters400 invalid_request
variables≤ 100 strings, each ≤ 200 chars400 invalid_request
limit (search)clamped to 1–50, default 20; must be finiteclamped; non-finite → 400

CORS is disabled by default: no access-control-* headers are emitted, so third-party browser origins cannot call the API (this page can — it is served from the same origin). Server-to-server clients are unaffected. Browser use cases require the operators to allowlist your origin; preflights then permit GET/POST with content-type, authorization, x-api-key, and x-request-id, and expose the request-id and rate-limit headers.

Endpoints

Every response example below is a real recorded exchange (values reflect the environment’s configured rule index and runtime; response shapes are stable). With an API key in the header field above, the Try it tab runs each request live against api.axiom-foundation.org from this page — same origin, no CORS involved. Keys are kept in session storage only.

GET/v1/healthpublic

Liveness probe: 200 whenever the process serves requests. No dependency checks.

curl -s https://api.axiom-foundation.org/v1/health
const res = await fetch("https://api.axiom-foundation.org/v1/health");
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.get(
    "https://api.axiom-foundation.org/v1/health",
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "status": "ok",
  "data": {
    "service": "axiom-api",
    "live": true
  },
  "meta": {
    "request_id": "f85c3d38-4fe2-4966-8f61-69ccef138fb9",
    "api_version": "0.1.0",
    "environment": "staging"
  }
}

GET/v1/readypublic

Readiness probe checking every dependency: auth configuration, the shared counter store, the rule index, and the calculation runtime. Returns 200 with data.ready: true only when every dependency is ready; otherwise 503 not_ready with the same data shape so you can see exactly which dependency is degraded.

curl -s https://api.axiom-foundation.org/v1/ready
const res = await fetch("https://api.axiom-foundation.org/v1/ready");
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.get(
    "https://api.axiom-foundation.org/v1/ready",
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "status": "ok",
  "data": {
    "ready": true,
    "status": "ready",
    "source": "static-rulespec-index",
    "dependencies": [
      {
        "name": "auth",
        "status": "ready",
        "detail": "2 configured API keys"
      },
      {
        "name": "counter-store",
        "status": "ready",
        "detail": "in-memory (per-instance rate limits and analytics)"
      },
      {
        "name": "static-rulespec-index",
        "status": "ready",
        "detail": "3179 indexed RuleSpec files"
      },
      {
        "name": "fixture-snap-runtime",
        "status": "ready",
        "detail": "experimental SNAP calculation fixture"
      }
    ]
  },
  "meta": {
    "request_id": "63c8c9a8-85a8-44e8-b96c-53ebf8439fbc",
    "api_version": "0.1.0",
    "environment": "staging"
  }
}

GET/v1/versionpublic

Deployed API version and environment.

curl -s https://api.axiom-foundation.org/v1/version
const res = await fetch("https://api.axiom-foundation.org/v1/version");
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.get(
    "https://api.axiom-foundation.org/v1/version",
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "status": "ok",
  "data": {
    "api_version": "0.1.0",
    "environment": "staging"
  },
  "meta": {
    "request_id": "fb9614f6-c76f-426f-b380-9012b55d24da",
    "api_version": "0.1.0",
    "environment": "staging"
  }
}

GET/v1/openapi.jsonpublic

The complete OpenAPI 3.1 document — the canonical machine-readable contract, suitable for client generation. Served without the response envelope.

curl -s https://api.axiom-foundation.org/v1/openapi.json
const res = await fetch("https://api.axiom-foundation.org/v1/openapi.json");
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.get(
    "https://api.axiom-foundation.org/v1/openapi.json",
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])

GET/v1/capabilitiesrules:read

Machine-readable manifest for portals and agents: API version, environment, endpoint map, repository source and program count, runtime status, the full package list, and one sample_request per executable package. Poll this instead of hardcoding capabilities.

curl -s https://api.axiom-foundation.org/v1/capabilities \
  -H "x-api-key: $AXIOM_API_KEY"
const res = await fetch("https://api.axiom-foundation.org/v1/capabilities", {
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
  },
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.get(
    "https://api.axiom-foundation.org/v1/capabilities",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "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"
  }
}

GET/v1/programsrules:read

Every program with indexed RuleSpecs and per-program rule counts. Appearing here means the program’s rules are searchable; whether it is executable is determined by runtime packages.

curl -s https://api.axiom-foundation.org/v1/programs \
  -H "x-api-key: $AXIOM_API_KEY"
const res = await fetch("https://api.axiom-foundation.org/v1/programs", {
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
  },
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.get(
    "https://api.axiom-foundation.org/v1/programs",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "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"
  }
}

Truncated: 39 more program entries omitted.

Token search over rule ids, citation paths, names, summaries, and symbols. Every whitespace-separated token of two or more characters must match. The as_of parameter (query or body) is reserved for point-in-time retrieval and currently returns 400 unsupported_parameter.

FieldTypeReq.Constraints
querystringyes2–500 characters
jurisdictionstringnoexact match, e.g. us-az
program_idstringnoexact match, e.g. snap
limitnumbernoclamped 1–50, default 20
curl -s -X POST https://api.axiom-foundation.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}'
const res = await fetch("https://api.axiom-foundation.org/v1/search", {
  method: "POST",
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
    "content-type": "application/json",
  },
  body: JSON.stringify({
    "query": "gross income test",
    "jurisdiction": "us-az",
    "limit": 3
  }),
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.post(
    "https://api.axiom-foundation.org/v1/search",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    json={
        "query": "gross income test",
        "jurisdiction": "us-az",
        "limit": 3
    },
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "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/v1/rules/{rule_id}rules:read

One rule by stable rule id (e.g. us-az.des_faa5_…_gross_income_test) or by citation path (e.g. us-az/policy/des/faa5/…/gross-income-test) — both resolve; citation paths contain slashes and work directly in the URL. Includes summary, symbols, dependency edges, and full provenance (repo, path, branch, source release).

curl -s https://api.axiom-foundation.org/v1/rules/us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test \
  -H "x-api-key: $AXIOM_API_KEY"
const res = await fetch("https://api.axiom-foundation.org/v1/rules/us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test", {
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
  },
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.get(
    "https://api.axiom-foundation.org/v1/rules/us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "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/v1/rules/{rule_id}/sourcessources:read

Source and provenance references for one rule: official citations with URLs and quotes where captured, plus the repository reference. Source types are official, derived, or repository.

curl -s https://api.axiom-foundation.org/v1/rules/us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test/sources \
  -H "x-api-key: $AXIOM_API_KEY"
const res = await fetch("https://api.axiom-foundation.org/v1/rules/us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test/sources", {
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
  },
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.get(
    "https://api.axiom-foundation.org/v1/rules/us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test/sources",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "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/v1/rules/{rule_id}/dependenciesgraphs:read

Upstream rules this rule depends on (dependencies) and downstream rules that depend on it (dependents), as stable rule ids you can fetch recursively.

curl -s https://api.axiom-foundation.org/v1/rules/us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test/dependencies \
  -H "x-api-key: $AXIOM_API_KEY"
const res = await fetch("https://api.axiom-foundation.org/v1/rules/us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test/dependencies", {
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
  },
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.get(
    "https://api.axiom-foundation.org/v1/rules/us-az.des_faa5_na_eligibility_and_benefit_determination_gross_income_test/dependencies",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "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"
  }
}

GET/v1/runtime/packagesrules:read

The programs the configured calculation runtime can execute right now. Each entry reports mode (fixture or compiled), status, and default_outputs — the variables returned when a calculate request omits variables.

curl -s https://api.axiom-foundation.org/v1/runtime/packages \
  -H "x-api-key: $AXIOM_API_KEY"
const res = await fetch("https://api.axiom-foundation.org/v1/runtime/packages", {
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
  },
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.get(
    "https://api.axiom-foundation.org/v1/runtime/packages",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "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/v1/runtime/packages/{jurisdiction}/{program_id}rules:read

Full executable surface for one package: accepted inputs with dtypes and defaults, all output names, aliases, entities, and a ready-to-post sample_request. Omitted inputs use the defaults listed here. 404 for unknown packages. Note the path order: jurisdiction first.

curl -s https://api.axiom-foundation.org/v1/runtime/packages/us-co/co-snap \
  -H "x-api-key: $AXIOM_API_KEY"
const res = await fetch("https://api.axiom-foundation.org/v1/runtime/packages/us-co/co-snap", {
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
  },
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.get(
    "https://api.axiom-foundation.org/v1/runtime/packages/us-co/co-snap",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "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"
  }
}

GET/v1/runtime/packages/{jurisdiction}/{program_id}/graphrules:read

The program’s rule dependency graph (a DAG) derived from the compiled artifact: every derived and parameter rule with its formula and dependency edges, the inputs and relations it reads, and the terminalOutputs that nothing else consumes. Built for visualizing how outputs are computed. 404 when no compiled graph exists for the package.

curl -s https://api.axiom-foundation.org/v1/runtime/packages/us-co/co-snap/graph \
  -H "x-api-key: $AXIOM_API_KEY"
const res = await fetch("https://api.axiom-foundation.org/v1/runtime/packages/us-co/co-snap/graph", {
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
  },
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.get(
    "https://api.axiom-foundation.org/v1/runtime/packages/us-co/co-snap/graph",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "status": "ok",
  "data": {
    "graph": {
      "rules": [
        {
          "legalId": "us-az:policies/des/faa5/benefit-amount#snap_benefit",
          "name": "snap_benefit",
          "fileLegalId": "us-az:policies/des/faa5/benefit-amount",
          "kind": "derived",
          "entity": "Household",
          "dtype": "decimal",
          "period": null,
          "unit": "USD",
          "source": null,
          "ruleDeps": [
            "us-az:policies/des/faa5/benefit-amount#snap_maximum_allotment"
          ],
          "inputDeps": [
            "axiom:us-az-snap#input.na_net_income"
          ],
          "relationDeps": [],
          "formula": "max(0, (snap_maximum_allotment - na_net_income))"
        },
        {
          "legalId": "us-az:policies/des/faa5/benefit-amount#snap_maximum_allotment",
          "name": "snap_maximum_allotment",
          "fileLegalId": "us-az:policies/des/faa5/benefit-amount",
          "kind": "parameter",
          "entity": null,
          "dtype": "decimal",
          "period": null,
          "unit": "USD",
          "source": null,
          "ruleDeps": [],
          "inputDeps": [],
          "relationDeps": [],
          "formula": "292"
        }
      ],
      "inputs": [
        {
          "legalId": "axiom:us-az-snap#input.na_net_income",
          "name": "na_net_income",
          "fileLegalId": "axiom:us-az-snap",
          "sample": null,
          "entity": "Household"
        }
      ],
      "relations": [],
      "ownOutputs": [
        "us-az:policies/des/faa5/benefit-amount#snap_benefit"
      ],
      "terminalOutputs": [
        "us-az:policies/des/faa5/benefit-amount#snap_benefit"
      ]
    }
  },
  "meta": {
    "request_id": "6f9c2f0e-1f6b-4c39-9d3e-2f42a1c0e9ab",
    "api_version": "0.1.0",
    "environment": "production"
  }
}

POST/v1/calculatecalculate:run

Execute a program for one household and return requested variables with a full attribution trace.

FieldTypeReq.Constraints
program_idstringyesfrom runtime packages
jurisdictionstringyesfrom runtime packages
householdobjectyessee below
variablesstring[]nodefaults to the package’s default_outputs

The household object supports these conventions (all optional; omitted inputs use package defaults):

KeyMeaning
peopleHousehold members: {"person_1": {"age": 42}}. Member count can drive entity counts.
spm_unitsUnit-level facts: {"unit_1": {"household_size": 2, "snap_gross_monthly_income": 1200}}. The first unit feeds the package’s input mappings.
factsFlat fact overrides matched by the package’s fact mappings and aliases.
periodCalculation month, "YYYY-MM". Invalid values fall back to the package default.
entitiesAdvanced: direct per-entity input overrides keyed by the entity ids from the package detail.
relationsAdvanced: explicit relation tuples for packages that consume them.

Use input names exactly as listed by the package detail (including household_aliases). Read the response as: outputs holds each requested variable; each trace entry attributes one variable to the RuleSpec rule and sources that produced it; runtime.mode says whether a fixture or compiled package executed; treat non-empty warnings as “not an authoritative determination.”

Failure modes: 400 invalid_request (schema), 400 invalid_household (semantic), 422 unsupported_program, 502 runtime_error, 413 payload_too_large.

curl -s -X POST https://api.axiom-foundation.org/v1/calculate \
  -H "x-api-key: $AXIOM_API_KEY" \
  -H "content-type: application/json" \
  -d @- <<'JSON'
{
  "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"
  ]
}
JSON
const res = await fetch("https://api.axiom-foundation.org/v1/calculate", {
  method: "POST",
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
    "content-type": "application/json",
  },
  body: JSON.stringify({
    "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"
    ]
  }),
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.post(
    "https://api.axiom-foundation.org/v1/calculate",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    json={
        "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"
        ]
    },
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "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"
  }
}

POST/v1/calculate/batchcalculate:run

Run up to 25 calculations in one synchronous request. Entries execute concurrently; results return positionallyresults[i] always corresponds to requests[i], each independently either {"status":"ok","result":…} or {"status":"error","error":{code,message}}. One invalid entry fails the whole request with a positional message (requests[1]: …) before anything executes; runtime failures of individual entries do not.

For more than 25 households, or work you do not want to hold a connection open for, use async jobs.

curl -s -X POST https://api.axiom-foundation.org/v1/calculate/batch \
  -H "x-api-key: $AXIOM_API_KEY" \
  -H "content-type: application/json" \
  -d @- <<'JSON'
{
  "requests": [
    {
      "program_id": "co-snap",
      "jurisdiction": "us-co",
      "household": {
        "spm_units": {
          "unit_1": {
            "household_size": 2,
            "snap_gross_monthly_income": 1200,
            "shelter_costs": 900
          }
        }
      },
      "variables": [
        "snap_benefit_amount"
      ]
    },
    {
      "program_id": "co-snap",
      "jurisdiction": "us-co",
      "household": {
        "spm_units": {
          "unit_1": {
            "household_size": 4,
            "snap_gross_monthly_income": 2100
          }
        }
      },
      "variables": [
        "snap_benefit_amount"
      ]
    }
  ]
}
JSON
const res = await fetch("https://api.axiom-foundation.org/v1/calculate/batch", {
  method: "POST",
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
    "content-type": "application/json",
  },
  body: JSON.stringify({
    "requests": [
      {
        "program_id": "co-snap",
        "jurisdiction": "us-co",
        "household": {
          "spm_units": {
            "unit_1": {
              "household_size": 2,
              "snap_gross_monthly_income": 1200,
              "shelter_costs": 900
            }
          }
        },
        "variables": [
          "snap_benefit_amount"
        ]
      },
      {
        "program_id": "co-snap",
        "jurisdiction": "us-co",
        "household": {
          "spm_units": {
            "unit_1": {
              "household_size": 4,
              "snap_gross_monthly_income": 2100
            }
          }
        },
        "variables": [
          "snap_benefit_amount"
        ]
      }
    ]
  }),
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.post(
    "https://api.axiom-foundation.org/v1/calculate/batch",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    json={
        "requests": [
            {
                "program_id": "co-snap",
                "jurisdiction": "us-co",
                "household": {
                    "spm_units": {
                        "unit_1": {
                            "household_size": 2,
                            "snap_gross_monthly_income": 1200,
                            "shelter_costs": 900
                        }
                    }
                },
                "variables": [
                    "snap_benefit_amount"
                ]
            },
            {
                "program_id": "co-snap",
                "jurisdiction": "us-co",
                "household": {
                    "spm_units": {
                        "unit_1": {
                            "household_size": 4,
                            "snap_gross_monthly_income": 2100
                        }
                    }
                },
                "variables": [
                    "snap_benefit_amount"
                ]
            }
        ]
    },
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "status": "ok",
  "data": {
    "summary": {
      "total": 2,
      "succeeded": 2,
      "failed": 0
    },
    "results": [
      {
        "status": "ok",
        "result": {
          "engine": "axiom",
          "runtime": {
            "id": "fixture-snap-runtime",
            "mode": "fixture"
          },
          "program_id": "co-snap",
          "jurisdiction": "us-co",
          "outputs": {
            "snap_benefit_amount": 339
          },
          "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"
              ]
            }
          ],
          "warnings": [
            "Experimental fixture runtime for API integration and parity harness development; not an authoritative eligibility determination."
          ]
        }
      },
      {
        "status": "ok",
        "result": {
          "engine": "axiom",
          "runtime": {
            "id": "fixture-snap-runtime",
            "mode": "fixture"
          },
          "program_id": "co-snap",
          "jurisdiction": "us-co",
          "outputs": {
            "snap_benefit_amount": 430
          },
          "trace": [
            {
              "rule_id": "us-co.cdhs_snap_fy_2026_benefit_calculation",
              "variable": "snap_benefit_amount",
              "value": 430,
              "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": "309fc0cb-beae-4215-bb1d-38b89bf2719f",
    "api_version": "0.1.0",
    "environment": "staging"
  }
}

POST/v1/jobs/calculatecalculate:run

Submit up to 50 calculations as a detached job. Returns 202 immediately with a job_id and status_url; execution proceeds with bounded concurrency and writes progress to the shared store. Job records live for 24 hours. durable: false means the store is per-instance memory and the job may not be pollable across instances — configure the shared store for production job use.

curl -s -X POST https://api.axiom-foundation.org/v1/jobs/calculate \
  -H "x-api-key: $AXIOM_API_KEY" \
  -H "content-type: application/json" \
  -d @- <<'JSON'
{
  "requests": [
    {
      "program_id": "co-snap",
      "jurisdiction": "us-co",
      "household": {
        "spm_units": {
          "unit_1": {
            "household_size": 2,
            "snap_gross_monthly_income": 1200,
            "shelter_costs": 900
          }
        }
      },
      "variables": [
        "snap_benefit_amount"
      ]
    },
    {
      "program_id": "co-snap",
      "jurisdiction": "us-co",
      "household": {
        "spm_units": {
          "unit_1": {
            "household_size": 4,
            "snap_gross_monthly_income": 2100
          }
        }
      },
      "variables": [
        "snap_benefit_amount"
      ]
    }
  ]
}
JSON
const res = await fetch("https://api.axiom-foundation.org/v1/jobs/calculate", {
  method: "POST",
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
    "content-type": "application/json",
  },
  body: JSON.stringify({
    "requests": [
      {
        "program_id": "co-snap",
        "jurisdiction": "us-co",
        "household": {
          "spm_units": {
            "unit_1": {
              "household_size": 2,
              "snap_gross_monthly_income": 1200,
              "shelter_costs": 900
            }
          }
        },
        "variables": [
          "snap_benefit_amount"
        ]
      },
      {
        "program_id": "co-snap",
        "jurisdiction": "us-co",
        "household": {
          "spm_units": {
            "unit_1": {
              "household_size": 4,
              "snap_gross_monthly_income": 2100
            }
          }
        },
        "variables": [
          "snap_benefit_amount"
        ]
      }
    ]
  }),
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.post(
    "https://api.axiom-foundation.org/v1/jobs/calculate",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    json={
        "requests": [
            {
                "program_id": "co-snap",
                "jurisdiction": "us-co",
                "household": {
                    "spm_units": {
                        "unit_1": {
                            "household_size": 2,
                            "snap_gross_monthly_income": 1200,
                            "shelter_costs": 900
                        }
                    }
                },
                "variables": [
                    "snap_benefit_amount"
                ]
            },
            {
                "program_id": "co-snap",
                "jurisdiction": "us-co",
                "household": {
                    "spm_units": {
                        "unit_1": {
                            "household_size": 4,
                            "snap_gross_monthly_income": 2100
                        }
                    }
                },
                "variables": [
                    "snap_benefit_amount"
                ]
            }
        ]
    },
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
202 Accepted · application/json
{
  "status": "ok",
  "data": {
    "job_id": "job_e2e60409-c46f-443b-b344-1011c7a4558e",
    "status": "running",
    "total": 2,
    "status_url": "/v1/jobs/job_e2e60409-c46f-443b-b344-1011c7a4558e",
    "durable": false
  },
  "meta": {
    "request_id": "540670d8-ef8f-4fde-a7e3-b2a3374a2e88",
    "api_version": "0.1.0",
    "environment": "staging"
  }
}

GET/v1/jobs/{job_id}calculate:run

Poll a submitted job. status progresses pending → running → succeeded | failed; completed/total give progress; on success results holds the positional outcomes exactly as batch returns them. Jobs are visible only to the key that created them — unknown and foreign ids are both 404. Poll with backoff (e.g. 500 ms doubling to 5 s).

curl -s https://api.axiom-foundation.org/v1/jobs/job_e2e60409-c46f-443b-b344-1011c7a4558e \
  -H "x-api-key: $AXIOM_API_KEY"
const res = await fetch("https://api.axiom-foundation.org/v1/jobs/job_e2e60409-c46f-443b-b344-1011c7a4558e", {
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
  },
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.get(
    "https://api.axiom-foundation.org/v1/jobs/job_e2e60409-c46f-443b-b344-1011c7a4558e",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "status": "ok",
  "data": {
    "id": "job_e2e60409-c46f-443b-b344-1011c7a4558e",
    "status": "succeeded",
    "created_at": "2026-07-02T02:47:18.679Z",
    "total": 2,
    "completed": 2,
    "api_key_id": "partner-a",
    "started_at": "2026-07-02T02:47:18.679Z",
    "results": [
      {
        "status": "ok",
        "result": {
          "engine": "axiom",
          "runtime": {
            "id": "fixture-snap-runtime",
            "mode": "fixture"
          },
          "program_id": "co-snap",
          "jurisdiction": "us-co",
          "outputs": {
            "snap_benefit_amount": 339
          },
          "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"
              ]
            }
          ],
          "warnings": [
            "Experimental fixture runtime for API integration and parity harness development; not an authoritative eligibility determination."
          ]
        }
      }
    ],
    "finished_at": "2026-07-02T02:47:18.680Z"
  },
  "meta": {
    "request_id": "5a5706e1-372a-42bc-8c09-3f8147ed514b",
    "api_version": "0.1.0",
    "environment": "staging"
  }
}

Truncated: results beyond the first entry omitted.

POST/v1/household/{country_id}/calculatecompat:policyengine

Migration surface — existing PolicyEngine household-API integrations only. This endpoint requires the dedicated compat:policyengine scope, granted only to keys issued for migrating partners; ordinary API keys (including trial keys) receive 403. New integrations should ignore this section entirely and use POST /v1/calculate with native Axiom variables, which carry full trace and legal-source provenance.

Accepts the PolicyEngine v1 wire format — entity groups (people, tax_units, spm_units, families, households, marital_units) whose variables map period keys to values, with null meaning “compute this” — and mirrors the PolicyEngine response envelope (status/message/result), so a migrating partner can switch base URLs without changing client code.

The axiom sidecar reports exactly what happened: computed lists every variable Axiom calculated (with the package used), unsupported lists every requested variable Axiom cannot cover yet with a precise reason (no mapping, no state on the household, or no executable package for the state). Uncovered variables keep their null in result — partial coverage is expected during migration and is measurable per request.

Constraints: only country_id us; axes are rejected with 400; the state is read from households.*.state_code/state_name; bare-year period keys return annual totals (monthly benefits × 12), monthly keys return monthly values. Coverage currently maps snap onto Axiom’s state SNAP packages. See docs/pe-household-compat.md for the migration process and the comparison harness that guards parity.

cURL
curl -s -X POST https://api.axiom-foundation.org/v1/household/us/calculate \
  -H "x-api-key: $AXIOM_API_KEY" \
  -H "content-type: application/json" \
  -d @- <<'JSON'
{
  "household": {
    "people": {
      "parent": {
        "age": {
          "2026": 34
        },
        "employment_income": {
          "2026": 18000
        }
      },
      "child": {
        "age": {
          "2026": 6
        }
      }
    },
    "spm_units": {
      "spm": {
        "members": [
          "parent",
          "child"
        ],
        "snap": {
          "2026": null
        }
      }
    },
    "tax_units": {
      "tu": {
        "members": [
          "parent",
          "child"
        ],
        "eitc": {
          "2026": null
        }
      }
    },
    "households": {
      "hh": {
        "members": [
          "parent",
          "child"
        ],
        "state_code": {
          "2026": "CO"
        }
      }
    }
  }
}
JSON
200 OK · application/json (result trimmed)
{
  "status": "ok",
  "message": null,
  "result": {
    "spm_units": {
      "spm": {
        "members": [
          "parent",
          "child"
        ],
        "snap": {
          "2026": 1908
        }
      }
    },
    "\u2026": "\u2026(request household echoed back with computed values filled)"
  },
  "axiom": {
    "request_id": "0649271b-fde8-43a7-be81-904690adf435",
    "engine": "axiom",
    "runtime": {
      "id": "fixture-snap-runtime",
      "mode": "fixture"
    },
    "jurisdiction": "us-co",
    "package": {
      "program_id": "co-snap",
      "jurisdiction": "us-co"
    },
    "period": "2026-01",
    "computed": [
      {
        "entity_group": "spm_units",
        "entity_id": "spm",
        "variable": "snap",
        "period": "2026",
        "value": 1908
      }
    ],
    "unsupported": [
      {
        "entity_group": "tax_units",
        "entity_id": "tu",
        "variable": "eitc",
        "period": "2026",
        "reason": "No Axiom mapping for this variable yet."
      }
    ],
    "warnings": [
      "Experimental fixture runtime for API integration and parity harness development; not an authoritative eligibility determination."
    ]
  }
}

GET/v1/parity/casesadmin:parity

Canonical parity checks: fixed calculation requests with expected outputs, tolerances, trace variables, and any external-engine comparisons. runtime_supported tells you whether the active runtime can execute each case.

curl -s https://api.axiom-foundation.org/v1/parity/cases \
  -H "x-api-key: $AXIOM_API_KEY"
const res = await fetch("https://api.axiom-foundation.org/v1/parity/cases", {
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
  },
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.get(
    "https://api.axiom-foundation.org/v1/parity/cases",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "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"
  }
}

Truncated: 2 more case(s) omitted.

POST/v1/parity/runadmin:parity

Execute every runtime-supported parity case and compare against expected outputs. No request body. Returns a summary (total/matching/different/errored/skipped), per-case variable-level diffs, trace outputs, and skipped_cases with reasons. Run after deployments to confirm calculation behavior.

curl -s -X POST https://api.axiom-foundation.org/v1/parity/run \
  -H "x-api-key: $AXIOM_API_KEY"
const res = await fetch("https://api.axiom-foundation.org/v1/parity/run", {
  method: "POST",
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
  },
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.post(
    "https://api.axiom-foundation.org/v1/parity/run",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "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"
  }
}

POST/v1/keys/trialno auth

Self-service trial key: no signup, expires after 14 days, scoped to rules:read, sources:read, graphs:read, and calculate:run, rate-limited to 30 requests/minute. Issuance is capped per client and globally per day, and every issuance lands in the admin audit trail. The raw key appears exactly once in the response — only its hash is persisted. Durable keys are issued by administrators via /v1/admin/keys.

The optional label (≤ 120 characters) is stored as the key’s note so administrators can tell trials apart.

curl -s -X POST https://api.axiom-foundation.org/v1/keys/trial \
  -H "content-type: application/json" \
  -d '{"label": "quickstart"}'
const res = await fetch("https://api.axiom-foundation.org/v1/keys/trial", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({ label: "quickstart" }),
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data.key); // store it now; only a hash is persisted
import requests

res = requests.post(
    "https://api.axiom-foundation.org/v1/keys/trial",
    json={"label": "quickstart"},
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"]["key"])  # store it now; only a hash is persisted
201 Created · application/json · key value redacted
{
  "status": "ok",
  "data": {
    "key": "axiom_...",
    "key_id": "trial_982896b1",
    "scopes": [
      "rules:read",
      "sources:read",
      "graphs:read",
      "calculate:run"
    ],
    "expires_at": "2026-07-19T15:14:33.312Z",
    "rate_limit": {
      "requests": 30,
      "window_seconds": 60
    },
    "ttl_days": 14,
    "durable": true,
    "warning": "Store the key value now; only its hash is persisted. Trial keys expire automatically — for a durable key, contact an Axiom administrator."
  },
  "meta": {
    "request_id": "d6401c58-2bdb-4c75-8079-277669e56663",
    "api_version": "0.1.0",
    "environment": "production"
  }
}

GET/v1/admin/analyticsadmin:analytics

Usage analytics collected in-process since instance start: totals by status code, per-route traffic with latency buckets, per-key usage (key ids only — never key material), auth/security event counters, and store errors. Add ?scope=global to merge the flushed snapshots of every live instance (requires the shared store; 503 store_unavailable if unreachable).

curl -s https://api.axiom-foundation.org/v1/admin/analytics?scope=global \
  -H "x-api-key: $AXIOM_API_KEY"
const res = await fetch("https://api.axiom-foundation.org/v1/admin/analytics?scope=global", {
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
  },
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.get(
    "https://api.axiom-foundation.org/v1/admin/analytics?scope=global",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "status": "ok",
  "data": {
    "instance_id": "5c4ef3bd-b386-4294-b515-03c3b992a780",
    "collected_since": "2026-07-02T02:09:21.472Z",
    "generated_at": "2026-07-02T02:09:35.637Z",
    "totals": {
      "requests": 16,
      "by_status": {
        "200": 12,
        "400": 1,
        "401": 1,
        "403": 1,
        "404": 1
      }
    },
    "auth_events": {
      "unauthorized": 1,
      "insufficient_scope": 1,
      "rate_limited": 0,
      "auth_throttled": 0,
      "auth_misconfigured": 0
    },
    "store_errors": 0,
    "routes": [
      {
        "route": "GET /v1/health",
        "requests": 2,
        "success": 2,
        "client_errors": 0,
        "server_errors": 0,
        "avg_duration_ms": 1,
        "max_duration_ms": 1,
        "latency_buckets": {
          "le_25ms": 2,
          "le_100ms": 0,
          "le_500ms": 0,
          "le_2000ms": 0,
          "gt_2000ms": 0
        }
      },
      {
        "route": "GET /v1/programs",
        "requests": 2,
        "success": 1,
        "client_errors": 1,
        "server_errors": 0,
        "avg_duration_ms": 1,
        "max_duration_ms": 1,
        "latency_buckets": {
          "le_25ms": 2,
          "le_100ms": 0,
          "le_500ms": 0,
          "le_2000ms": 0,
          "gt_2000ms": 0
        }
      },
      {
        "route": "POST /v1/search",
        "requests": 2,
        "success": 1,
        "client_errors": 1,
        "server_errors": 0,
        "avg_duration_ms": 5,
        "max_duration_ms": 8,
        "latency_buckets": {
          "le_25ms": 2,
          "le_100ms": 0,
          "le_500ms": 0,
          "le_2000ms": 0,
          "gt_2000ms": 0
        }
      }
    ],
    "keys": [
      {
        "api_key_id": "partner-a",
        "requests": 10,
        "rate_limited": 0,
        "last_used_at": "2026-07-02T02:09:35.625Z"
      }
    ]
  },
  "meta": {
    "request_id": "02d94858-cbef-43de-8128-ef760e6f4920",
    "api_version": "0.1.0",
    "environment": "staging"
  }
}

Local-scope example. Truncated: 9 more route entries omitted.

GET/v1/admin/usageadmin:analytics

Durable per-key request counts aggregated by calendar month (UTC), retained ~13 months in the shared store — the audit-grade complement to the live analytics snapshot, suitable for partner reporting and quota reviews. ?month=YYYY-MM selects a month (default: current).

curl -s https://api.axiom-foundation.org/v1/admin/usage?month=2026-07 \
  -H "x-api-key: $AXIOM_API_KEY"
const res = await fetch("https://api.axiom-foundation.org/v1/admin/usage?month=2026-07", {
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
  },
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.get(
    "https://api.axiom-foundation.org/v1/admin/usage?month=2026-07",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "status": "ok",
  "data": {
    "month": "2026-07",
    "usage": [
      {
        "api_key_id": "ops-admin",
        "requests": 4
      }
    ],
    "store": "memory"
  },
  "meta": {
    "request_id": "982bf5d4-4674-47f9-b5a6-27f2e36dbaab",
    "api_version": "0.1.0",
    "environment": "staging"
  }
}

GET/v1/admin/keysadmin:keys

Configured API keys as metadata: id, scopes, registry status, runtime revocation state, prefix, rate limit, owner, timestamps. Key values and hashes are never returned.

curl -s https://api.axiom-foundation.org/v1/admin/keys \
  -H "x-api-key: $AXIOM_API_KEY"
const res = await fetch("https://api.axiom-foundation.org/v1/admin/keys", {
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
  },
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.get(
    "https://api.axiom-foundation.org/v1/admin/keys",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "status": "ok",
  "data": {
    "keys": [
      {
        "id": "partner-a",
        "scopes": [
          "rules:read",
          "sources:read",
          "graphs:read",
          "calculate:run"
        ],
        "status": "active",
        "runtime_revoked": false,
        "rate_limit": {
          "requests": 120,
          "window_seconds": 60
        }
      },
      {
        "id": "ops-admin",
        "scopes": [
          "*"
        ],
        "status": "active",
        "runtime_revoked": false
      }
    ],
    "store": "memory"
  },
  "meta": {
    "request_id": "69c3cdf9-f877-4d1d-be7d-2d22775f4aca",
    "api_version": "0.1.0",
    "environment": "staging"
  }
}

POST/v1/admin/keysadmin:keys

Issue a new API key at runtime. The raw key is returned exactly once; only its sha256 hash is persisted (to the shared store, marked by source: "store" in the key listing). The new key authenticates within ~15 seconds on all instances. durable: false warns that a memory-store key will not survive restarts — configure the shared store before issuing real keys.

FieldTypeReq.Constraints
idstringyes3–64 chars, [a-z0-9_-]; must be unique (409 key_id_conflict)
scopesstring[]yesnon-empty
owner, notestringno≤ 120 / ≤ 500 chars
expires_atstringnoISO timestamp
rate_limitobjectno{requests, window_seconds}, positive integers

Every issuance is recorded in the audit trail.

curl -s -X POST https://api.axiom-foundation.org/v1/admin/keys \
  -H "x-api-key: $AXIOM_API_KEY" \
  -H "content-type: application/json" \
  -d '{"id": "partner-b", "scopes": ["rules:read", "calculate:run"], "owner": "partner-b-co", "rate_limit": {"requests": 120, "window_seconds": 60}}'
const res = await fetch("https://api.axiom-foundation.org/v1/admin/keys", {
  method: "POST",
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
    "content-type": "application/json",
  },
  body: JSON.stringify({
    "id": "partner-b",
    "scopes": [
      "rules:read",
      "calculate:run"
    ],
    "owner": "partner-b-co",
    "rate_limit": {
      "requests": 120,
      "window_seconds": 60
    }
  }),
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.post(
    "https://api.axiom-foundation.org/v1/admin/keys",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    json={
        "id": "partner-b",
        "scopes": [
            "rules:read",
            "calculate:run"
        ],
        "owner": "partner-b-co",
        "rate_limit": {
            "requests": 120,
            "window_seconds": 60
        }
    },
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
201 Created · application/json
{
  "status": "ok",
  "data": {
    "key": "axiom_EXAMPLE0nLyREDACTEDrawKEYvALUEshownONCEonISSUE00",
    "entry": {
      "id": "partner-b",
      "prefix": "axiom_EXAMPLE0",
      "scopes": [
        "rules:read",
        "calculate:run"
      ],
      "status": "active",
      "created_at": "2026-07-02T02:47:18.403Z",
      "owner": "partner-b-co",
      "rate_limit": {
        "requests": 120,
        "window_seconds": 60
      }
    },
    "durable": false,
    "warning": "Store the key value now; only its hash is persisted. The store is per-instance memory: this key is NOT durable across restarts or instances."
  },
  "meta": {
    "request_id": "b362cd3e-2f16-4fcf-b52e-df8306215b59",
    "api_version": "0.1.0",
    "environment": "staging"
  }
}

POST/v1/admin/keys/{key_id}/revokeadmin:keys

Revoke a key at runtime; takes effect within 30 seconds on every instance (revocations are read through a 30-second cache). durable: true means the revocation lives in the shared store and survives restarts; permanent revocation still requires marking the key revoked in the registry. 404 for unknown ids.

curl -s -X POST https://api.axiom-foundation.org/v1/admin/keys/partner-a/revoke \
  -H "x-api-key: $AXIOM_API_KEY"
const res = await fetch("https://api.axiom-foundation.org/v1/admin/keys/partner-a/revoke", {
  method: "POST",
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
  },
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.post(
    "https://api.axiom-foundation.org/v1/admin/keys/partner-a/revoke",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "status": "ok",
  "data": {
    "id": "partner-a",
    "revoked": true,
    "durable": false,
    "note": "Revocation is per-instance and non-durable; remove the key from the registry and redeploy for permanence."
  },
  "meta": {
    "request_id": "a116f613-583e-4e77-94f9-89a5d75e59a6",
    "api_version": "0.1.0",
    "environment": "staging"
  }
}

GET/v1/admin/validation/runsadmin:analytics

History of published validation runs (the PE household comparison harness posts here with --publish). GET /v1/admin/validation/runs lists summaries — parity/drift/coverage totals, real average per-case latency, API version, and the serving contract hash; GET /v1/admin/validation/runs/{run_id} returns one run’s full per-variable rows and per-case phase timings; GET /v1/admin/validation/migration returns the migration ledger (partner demand vs current coverage); POST /v1/admin/validation/runs records a run (180-day retention, audited). The validation dashboard renders this history with trends and run-over-run diffs.

GET/v1/admin/auditadmin:keys

Durable audit trail of admin actions (key issuance and revocation), newest first, up to 200 entries, retained 90 days in the shared store. Each entry records the acting key id, client address, request id, timestamp, action, and target — never key material.

curl -s https://api.axiom-foundation.org/v1/admin/audit \
  -H "x-api-key: $AXIOM_API_KEY"
const res = await fetch("https://api.axiom-foundation.org/v1/admin/audit", {
  headers: {
    "x-api-key": process.env.AXIOM_API_KEY,
  },
});
const payload = await res.json();
if (payload.status !== "ok") throw new Error(payload.error.code);
console.log(payload.data);
import os
import requests

res = requests.get(
    "https://api.axiom-foundation.org/v1/admin/audit",
    headers={"x-api-key": os.environ["AXIOM_API_KEY"]},
    timeout=30,
)
payload = res.json()
assert payload["status"] == "ok", payload["error"]
print(payload["data"])
200 OK · application/json
{
  "status": "ok",
  "data": {
    "entries": [
      {
        "at": "2026-07-02T02:47:18.418Z",
        "action": "key.revoked",
        "target": "partner-b",
        "actor": "ops-admin",
        "client": null,
        "request_id": "ac99a772-1959-4e9d-9b51-61fef67f2673"
      },
      {
        "at": "2026-07-02T02:47:18.404Z",
        "action": "key.issued",
        "target": "partner-b",
        "actor": "ops-admin",
        "client": null,
        "request_id": "b362cd3e-2f16-4fcf-b52e-df8306215b59",
        "detail": {
          "scopes": [
            "rules:read",
            "calculate:run"
          ],
          "owner": "partner-b-co"
        }
      }
    ],
    "store": "memory"
  },
  "meta": {
    "request_id": "8ffedee0-4140-47d8-a251-87e2583a1092",
    "api_version": "0.1.0",
    "environment": "staging"
  }
}

Truncated to the two most recent entries.

Abuse controls

GET /v1/admin/kill reads and POST /v1/admin/kill updates the durable trial traffic and mint switches. Both require admin:keys.