{"openapi":"3.1.0","info":{"title":"Prevailing Wage API","version":"1.0.0","description":"Davis-Bacon wage determination lookup, classification checks, payroll prechecks, fringe reconciliation, and report generation. Paid with x402 exact USDC on Base. No account is required.","contact":{"email":"support@brainiac.software"},"x-guidance":"BRAINIAC.software is a pay-per-call API for software agents. No account or API key is required.\nPayment uses the x402 protocol with exact USDC on Base (chain id 8453). Each POST operation has a fixed USD price.\nHow to call an operation:\n1. POST a JSON body matching the operation's requestBody schema to the operation path. Include an Idempotency-Key header (64 hex characters, 32 random bytes).\n2. If you have not paid, the server responds 402 with payment requirements in the body. Pay the exact amount to the payTo address on Base.\n3. Retry the identical request with the same Idempotency-Key and add a payment-signature header containing the x402 payment payload. On success (200) the operation result is returned.\n4. Reuse the same Idempotency-Key only for retries of the same operation and request body; it will not be charged twice.\nAll outputs are compliance prechecks, drafts, or data lookups for human review. They are not official determinations, legal advice, identity confirmation, or certified filings. Verify time-sensitive or official data with the cited source before acting."},"servers":[{"url":"https://www.brainiac.software"}],"paths":{"/api/v1/prevailing-wage/search":{"post":{"operationId":"search_davis_bacon_wage_determinations","summary":"Search Davis-Bacon wage determinations","description":"Search Davis-Bacon wage determinations by state, county, construction type, or award/bid date. Results include source details and an indicator when a record may be out of date.","tags":["prevailing-wage"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"state":{"type":"string","minLength":2,"maxLength":2},"county":{"type":"string","minLength":1,"maxLength":120},"constructionType":{"type":"string","enum":["building","residential","highway","heavy"]},"awardBidDate":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"query":{"type":"string","maxLength":120},"limit":{"default":50,"type":"integer","minimum":1,"maximum":100}},"required":["limit"],"additionalProperties":false},"example":{"state":"TX","county":"Travis","constructionType":"building","awardBidDate":"2026-10-28","limit":10}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"determinations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"state":{"type":"string"},"county":{"type":"string"},"constructionType":{"type":"string"},"revision":{"type":"string"},"url":{"type":"string"},"source":{"type":"string"},"confidence":{"type":"number"},"syncedAt":{"type":"string"},"stale":{"type":"boolean"}},"additionalProperties":true}},"source":{"type":"string"}},"additionalProperties":true},"example":{"determinations":[{"id":"TX20260001","state":"TX","county":"Travis","constructionType":"building","revision":"2026-01","url":"https://sam.gov/wage-determinations","source":"DOL.gov","confidence":0.94,"syncedAt":"2026-10-28T12:00:00.000Z","stale":false}],"source":"Official SAM.gov and DOL.gov wage determinations"}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]}}},"/api/v1/prevailing-wage/resolve":{"post":{"operationId":"resolve_a_wage_determination","summary":"Resolve a wage determination","description":"Resolve an active determination by state, county, construction type, and award/bid date. Unmatched determinations are not inferred.","tags":["prevailing-wage"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"state":{"type":"string","minLength":2,"maxLength":2},"county":{"type":"string","minLength":1,"maxLength":120},"constructionType":{"type":"string","enum":["building","residential","highway","heavy"]},"awardBidDate":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},"required":["state","county","constructionType","awardBidDate"],"additionalProperties":false},"example":{"state":"TX","county":"Travis","constructionType":"building","awardBidDate":"2026-10-28"}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"found":{"type":"boolean"},"id":{"type":"string"},"revision":{"type":"string"},"url":{"type":"string"},"confidence":{"type":"number"},"source":{"type":"string"},"syncedAt":{"type":"string"},"stale":{"type":"boolean"},"awardBidDate":{"type":"string"}},"additionalProperties":true},"example":{"found":true,"id":"TX20260001","revision":"2026-01","url":"https://sam.gov/wage-determinations","confidence":0.94,"source":"DOL.gov","syncedAt":"2026-10-28T12:00:00.000Z","stale":false,"awardBidDate":"2026-10-28"}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]}}},"/api/v1/prevailing-wage/classification-rates":{"post":{"operationId":"read_classification_rates","summary":"Read classification rates","description":"Return sourced base/fringe rates, notes, zones, and excerpts for a wage determination.","tags":["prevailing-wage"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"wdId":{"type":"string","minLength":1,"maxLength":120},"craft":{"type":"string","maxLength":120}},"required":["wdId"],"additionalProperties":false},"example":{"wdId":"TX20260001","craft":"electrician"}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"found":{"type":"boolean"},"determination":{"type":"object","properties":{"id":{"type":"string"},"revision":{"type":"string"},"source":{"type":"string"},"syncedAt":{"type":"string"}},"additionalProperties":true},"rates":{"type":"array","items":{"type":"object","properties":{"classification":{"type":"string"},"baseRate":{"type":"number"},"fringeRate":{"type":"number"},"zone":{"type":"null"},"notes":{"type":"null"},"excerpt":{"type":"string"},"source":{"type":"string"}},"additionalProperties":true}}},"additionalProperties":true},"example":{"found":true,"determination":{"id":"TX20260001","revision":"2026-01","source":"DOL.gov","syncedAt":"2026-10-28T12:00:00.000Z"},"rates":[{"classification":"Electrician","baseRate":31.5,"fringeRate":12.25,"zone":null,"notes":null,"excerpt":"Example source excerpt","source":"Official wage determination"}]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]}}},"/api/v1/prevailing-wage/classification-validate":{"post":{"operationId":"validate_a_labor_classification","summary":"Validate a labor classification","description":"Use deterministic keyword matching against a selected wage determination. Ambiguous work is routed for human conformance review.","tags":["prevailing-wage"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"wdId":{"type":"string","minLength":1,"maxLength":120},"duties":{"type":"string","minLength":1,"maxLength":4000},"trade":{"type":"string","maxLength":120}},"required":["wdId","duties"],"additionalProperties":false},"example":{"wdId":"TX20260001","duties":"Install electrical conduit and wiring","trade":"electrician"}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"valid":{"type":"boolean"},"needsSF1444Conformance":{"type":"boolean"},"classification":{"type":"string"},"confidence":{"type":"number"},"matchedTerms":{"type":"array","items":{"type":"string"}},"source":{"type":"string"}},"additionalProperties":true},"example":{"valid":true,"needsSF1444Conformance":false,"classification":"Electrician","confidence":0.8,"matchedTerms":["electrician"],"source":"Deterministic keyword match against wage determination classifications"}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"protocols":[{"x402":{}}]}}},"/api/v1/prevailing-wage/conformance-draft":{"post":{"operationId":"draft_a_classification_conformance_request","summary":"Draft a classification conformance request","description":"Prepare optional SF-1444 request language from caller-supplied facts. Human review and contracting-officer submission are required; this is not an approved classification or rate.","tags":["prevailing-wage"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"projectName":{"type":"string","minLength":1,"maxLength":240},"wdId":{"type":"string","minLength":1,"maxLength":120},"duties":{"type":"string","minLength":1,"maxLength":4000},"proposedClassification":{"type":"string","maxLength":120},"proposedRate":{"type":"number","minimum":0},"rationale":{"type":"string","maxLength":4000}},"required":["projectName","wdId","duties"],"additionalProperties":false},"example":{"projectName":"Example project","wdId":"TX20260001","duties":"Install electrical conduit and wiring","proposedClassification":"Electrician","proposedRate":31.5,"rationale":"Work duties are not listed in the determination."}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"draft":{"type":"string"},"submitted":{"type":"boolean"}},"additionalProperties":true},"example":{"draft":"DRAFT - SF-1444 classification conformance request\nProject: Example project\nWage determination: TX20260001\nWork duties: Install electrical conduit and wiring\nProposed classification: Electrician\nProposed rate: $31.50/hour\nRationale: Work duties are not listed in the determination.\nSubmit to the contracting officer for review. This draft is not an approved classification or rate.","submitted":false}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.01"},"protocols":[{"x402":{}}]}}},"/api/v1/prevailing-wage/payroll-precheck":{"post":{"operationId":"precheck_certified_payroll","summary":"Precheck certified payroll","description":"Run deterministic DBRA checks against a wage determination. This is a compliance precheck, not a certified government filing.","tags":["prevailing-wage"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"wdId":{"type":"string","minLength":1},"weekEnding":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"cwhssaCovered":{"type":"boolean"},"project":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":240},"contractNumber":{"type":"string","maxLength":120},"payrollNumber":{"type":"string","maxLength":120},"contractor":{"type":"string","minLength":1,"maxLength":240},"address":{"type":"string","minLength":1,"maxLength":500},"location":{"type":"string","minLength":1,"maxLength":240}},"required":["name","contractor","address","location"],"additionalProperties":false},"workers":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{"lastName":{"type":"string","minLength":1,"maxLength":80},"firstName":{"type":"string","minLength":1,"maxLength":80},"middleInitial":{"type":"string","maxLength":1},"identifyingNumber":{"type":"string","minLength":1,"maxLength":8,"description":"Use a worker-specific ID or last four digits only; never enter a full SSN."},"status":{"type":"string","enum":["J","RA"]},"apprenticeLevel":{"type":"string","maxLength":80},"classification":{"type":"string","minLength":1,"maxLength":120},"hoursOtherWork":{"type":"number","minimum":0,"description":"Hours this worker worked for the week on other work, in addition to the listed project. Enter 0 when none."},"days":{"minItems":7,"maxItems":7,"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"straight":{"default":0,"type":"number","minimum":0,"maximum":24},"overtime":{"default":0,"type":"number","minimum":0,"maximum":24}},"required":["date","straight","overtime"],"additionalProperties":false}},"straightRate":{"type":"number","minimum":0},"overtimeRate":{"type":"number","minimum":0},"fringeCreditHourly":{"default":0,"type":"number","minimum":0},"cashInLieuHourly":{"default":0,"type":"number","minimum":0},"grossProject":{"type":"number","minimum":0},"grossAllWork":{"type":"number","minimum":0},"taxWithheld":{"default":0,"type":"number","minimum":0},"ficaWithheld":{"default":0,"type":"number","minimum":0},"otherDeductions":{"default":0,"type":"number","minimum":0},"netAllWork":{"type":"number","minimum":0}},"required":["lastName","firstName","identifyingNumber","status","classification","hoursOtherWork","days","straightRate","overtimeRate","fringeCreditHourly","cashInLieuHourly","taxWithheld","ficaWithheld","otherDeductions"],"additionalProperties":false}}},"required":["wdId","weekEnding","cwhssaCovered","project","workers"],"additionalProperties":false},"example":{"wdId":"TX20260001","weekEnding":"2026-10-24","cwhssaCovered":false,"project":{"name":"Example project","contractor":"Example Co","address":"Austin, TX","location":"Travis County, TX"},"workers":[{"lastName":"Sample","firstName":"Worker","identifyingNumber":"W001","status":"J","classification":"Laborer","hoursOtherWork":0,"days":[{"date":"2026-10-18","straight":8,"overtime":0},{"date":"2026-10-19","straight":8,"overtime":0},{"date":"2026-10-20","straight":8,"overtime":0},{"date":"2026-10-21","straight":8,"overtime":0},{"date":"2026-10-22","straight":8,"overtime":0},{"date":"2026-10-23","straight":0,"overtime":0},{"date":"2026-10-24","straight":0,"overtime":0}],"straightRate":20,"overtimeRate":30}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"wdId":{"type":"string"},"weekEnding":{"type":"string"},"checkedAt":{"type":"string"},"findings":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"severity":{"type":"string"},"message":{"type":"string"},"cite":{"type":"string"},"row":{"type":"number"},"col":{"type":"string"}},"additionalProperties":true}},"workerCount":{"type":"number"},"ruleset":{"type":"string"}},"additionalProperties":true},"example":{"status":"FAIL","wdId":"TX20260001","weekEnding":"2026-10-24","checkedAt":"2026-10-29T12:00:00.000Z","findings":[{"ruleId":"CLASSIFICATION_UNVERIFIED","severity":"FAIL","message":"Classification requires review.","cite":"https://sam.gov/wage-determinations","row":1,"col":"3"}],"workerCount":1,"ruleset":"brainiac-dbra-precheck-1"}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"protocols":[{"x402":{}}]}}},"/api/v1/prevailing-wage/fringe-reconcile":{"post":{"operationId":"reconcile_fringe_credits","summary":"Reconcile fringe credits","description":"Compare annualized benefit contributions and cash-in-lieu with the supplied required hourly fringe. Inputs and findings are returned for review.","tags":["prevailing-wage"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"planCostAnnual":{"type":"number","minimum":0},"annualHours":{"type":"number","exclusiveMinimum":0},"projectHours":{"type":"number","minimum":0},"reportedPlanContribution":{"type":"number","minimum":0},"reportedCashInLieu":{"type":"number","minimum":0},"requiredFringeHourly":{"type":"number","minimum":0}},"required":["planCostAnnual","annualHours","projectHours","reportedPlanContribution","reportedCashInLieu","requiredFringeHourly"],"additionalProperties":false},"example":{"planCostAnnual":6000,"annualHours":2000,"projectHours":40,"reportedPlanContribution":120,"reportedCashInLieu":20,"requiredFringeHourly":4}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"annualizedHourlyCredit":{"type":"number"},"expectedPlanContribution":{"type":"number"},"reportedPlanContribution":{"type":"number"},"reportedCashInLieu":{"type":"number"},"requiredFringeTotal":{"type":"number"},"reportedFringeTotal":{"type":"number"},"findings":{"type":"array","items":{}},"citation":{"type":"string"}},"additionalProperties":true},"example":{"status":"PASS","annualizedHourlyCredit":3,"expectedPlanContribution":120,"reportedPlanContribution":120,"reportedCashInLieu":40,"requiredFringeTotal":160,"reportedFringeTotal":160,"findings":[],"citation":"https://www.ecfr.gov/current/title-29/subtitle-A/part-5/section-5.25"}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.02"},"protocols":[{"x402":{}}]}}},"/api/v1/prevailing-wage/payroll-report":{"post":{"operationId":"build_payroll_report_files","summary":"Build payroll report files","description":"Generate an editable XLSX and a minimal PDF summary after DBRA precheck. Output is not a prescribed government form.","tags":["prevailing-wage"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"wdId":{"type":"string","minLength":1},"weekEnding":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"cwhssaCovered":{"type":"boolean"},"project":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":240},"contractNumber":{"type":"string","maxLength":120},"payrollNumber":{"type":"string","maxLength":120},"contractor":{"type":"string","minLength":1,"maxLength":240},"address":{"type":"string","minLength":1,"maxLength":500},"location":{"type":"string","minLength":1,"maxLength":240}},"required":["name","contractor","address","location"],"additionalProperties":false},"workers":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{"lastName":{"type":"string","minLength":1,"maxLength":80},"firstName":{"type":"string","minLength":1,"maxLength":80},"middleInitial":{"type":"string","maxLength":1},"identifyingNumber":{"type":"string","minLength":1,"maxLength":8,"description":"Use a worker-specific ID or last four digits only; never enter a full SSN."},"status":{"type":"string","enum":["J","RA"]},"apprenticeLevel":{"type":"string","maxLength":80},"classification":{"type":"string","minLength":1,"maxLength":120},"hoursOtherWork":{"type":"number","minimum":0,"description":"Hours this worker worked for the week on other work, in addition to the listed project. Enter 0 when none."},"days":{"minItems":7,"maxItems":7,"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"straight":{"default":0,"type":"number","minimum":0,"maximum":24},"overtime":{"default":0,"type":"number","minimum":0,"maximum":24}},"required":["date","straight","overtime"],"additionalProperties":false}},"straightRate":{"type":"number","minimum":0},"overtimeRate":{"type":"number","minimum":0},"fringeCreditHourly":{"default":0,"type":"number","minimum":0},"cashInLieuHourly":{"default":0,"type":"number","minimum":0},"grossProject":{"type":"number","minimum":0},"grossAllWork":{"type":"number","minimum":0},"taxWithheld":{"default":0,"type":"number","minimum":0},"ficaWithheld":{"default":0,"type":"number","minimum":0},"otherDeductions":{"default":0,"type":"number","minimum":0},"netAllWork":{"type":"number","minimum":0}},"required":["lastName","firstName","identifyingNumber","status","classification","hoursOtherWork","days","straightRate","overtimeRate","fringeCreditHourly","cashInLieuHourly","taxWithheld","ficaWithheld","otherDeductions"],"additionalProperties":false}}},"required":["wdId","weekEnding","cwhssaCovered","project","workers"],"additionalProperties":false},"example":{"wdId":"TX20260001","weekEnding":"2026-10-24","cwhssaCovered":false,"project":{"name":"Example project","contractor":"Example Co","address":"Austin, TX","location":"Travis County, TX"},"workers":[{"lastName":"Sample","firstName":"Worker","identifyingNumber":"W001","status":"J","classification":"Laborer","hoursOtherWork":0,"days":[{"date":"2026-10-18","straight":8,"overtime":0},{"date":"2026-10-19","straight":8,"overtime":0},{"date":"2026-10-20","straight":8,"overtime":0},{"date":"2026-10-21","straight":8,"overtime":0},{"date":"2026-10-22","straight":8,"overtime":0},{"date":"2026-10-23","straight":0,"overtime":0},{"date":"2026-10-24","straight":0,"overtime":0}],"straightRate":20,"overtimeRate":30}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"result":{"type":"object","properties":{"status":{"type":"string"},"wdId":{"type":"string"},"weekEnding":{"type":"string"},"findings":{"type":"array","items":{}},"workerCount":{"type":"number"},"ruleset":{"type":"string"}},"additionalProperties":true},"pdf":{"type":"string"},"xlsx":{"type":"string"}},"additionalProperties":true},"example":{"result":{"status":"WARN","wdId":"TX20260001","weekEnding":"2026-10-24","findings":[],"workerCount":1,"ruleset":"brainiac-dbra-precheck-1"},"pdf":"<base64-encoded-pdf>","xlsx":"<base64-encoded-xlsx>"}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.08"},"protocols":[{"x402":{}}]}}}},"components":{"schemas":{"ApiError":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{}}}}}}}}