---
title: "determine_dependent"
method: POST
path: "/v1/tools/determine_dependent"
tags: ["tools"]
---

# determine_dependent

`POST /v1/tools/determine_dependent`

## Request

- Base URL: `https://opentax.invaro.ai`
- URL: `https://opentax.invaro.ai/v1/tools/determine_dependent`
- Auth: one of:
  - HTTP bearer
  - none

Determine whether ONE candidate person is the taxpayer's § 152 dependent — qualifying child or qualifying relative, including multiple-support agreements and the divorced-parents release — as a proof-backed yes/no with citations. Feed the result into calculate_tax's credits group (qualifyingChildren / otherDependents).

## Headers

- `X-OpenTax-Return-Id` string

## Request body

- object
  - `depRelationshipChild` boolean: Candidate is the taxpayer's child, stepchild, foster child, sibling, step-sibling, or a descendant of any of them (§ 152(c)(2)).
  - `depAge` union: Candidate's age at the end of the year (§ 152(c)(3)).
    - integer
    - string
  - `depIsFullTimeStudent` boolean: Candidate was a full-time student for at least 5 months (§ 152(f)(2)).
  - `depPermanentlyDisabled` boolean: Candidate is permanently and totally disabled (§ 152(c)(3)(B)).
  - `depYoungerThanTaxpayer` boolean: Candidate is younger than the taxpayer (§ 152(c)(3)(A)).
  - `depLivedWithTaxpayerOverHalfYear` boolean: Candidate had the same principal residence as the taxpayer for more than half the year (§ 152(c)(1)(B)).
  - `depProvidedOwnSupportOverHalf` boolean: Candidate provided more than half of their own support (§ 152(c)(1)(D)).
  - `depFilesJointReturn` boolean: Candidate files a joint return with a spouse (other than a refund-only claim) (§ 152(c)(1)(E)).
  - `depRelationshipRelative` boolean: Candidate bears a § 152(d)(2) relationship to the taxpayer (parent, grandparent, sibling, in-law, etc.) or lived in the household all year.
  - `depGrossIncome` union: Candidate's gross income for the year (§ 152(d)(1)(B) limit: $5,200 TY2025 / $5,300 TY2026). In dollars.
    - number
    - string
  - `taxpayerProvidedOverHalfSupport` boolean: The taxpayer provided more than half of the candidate's support (§ 152(d)(1)(C)).
  - `depIsQualifyingChildOfAnother` boolean: Candidate is the qualifying child of the taxpayer or any other taxpayer (§ 152(d)(1)(D)).
  - `hasMultipleSupportAgreement` boolean: A § 152(d)(3) multiple-support agreement is in place for the candidate: the group together provided over half the support, no one person provided over half, each member could otherwise claim the candidate, and every other over-10% contributor signed a Form 2120 waiver.
  - `taxpayerProvidedOver10PercentSupport` boolean: The taxpayer contributed over 10 percent of the candidate's support (§ 152(d)(3)(D) — the support test under a multiple-support agreement).
  - `depDivorcedParentsRule` boolean: § 152(e) applies to the candidate child: the parents are divorced, separated, or lived apart the last 6 months of the year; the child received over half their support from the parents and was in their custody over half the year.
  - `taxpayerIsCustodialParent` boolean: The taxpayer is the custodial parent (the parent with whom the child resided the greater number of nights, § 152(e)(4)(A)).
  - `custodialParentReleasedClaim` boolean: The custodial parent signed a written declaration (Form 8332) releasing the claim to the child for this year (§ 152(e)(2)).
  - `target` string: rule to derive (default: us.federal.dependent.is_dependent). Other targets: us.federal.dependent.qualifying_child, us.federal.dependent.qualifying_relative
  - `asOf` string: REQUIRED for computation: the law-in-force date — use the intended tax year's year-end (e.g. "2025-12-31" for TY2025). Omitting it is an error, never a default.
  - `includeProof` boolean: include the full proof artifact in the response as `proof` (PROOF-FORMAT v2: every applied rule, input, assumption and rounding, verifiable offline against corpusMerkleRoot; ~200 KB). Default false — the hashes alone are returned.

## Response `200`

ok:true with the computed value, line set or lookup hits; ok:false with error.code when the engine refuses (NEEDS_FACTS, NO_APPLICABLE_RULE, UNHANDLED_ENUM_CASE)

- object
  - `ok` boolean, required

## Other responses

- `400`: transport-level error
- `401`: transport-level error
- `429`: transport-level error

---

[API](https://skmtc.dev/invaro/apis/opentax-rest-api.md) · [All operations](https://skmtc.dev/invaro/apis/opentax-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/invaro/apis/opentax-rest-api/revisions/61fd3e3e6018?raw)
