{"openapi":"3.1.0","info":{"title":"BRAINIAC.software API","version":"1.0.0","description":"REST API using x402 exact USDC payments on Base. Payment settles before an operation runs. 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://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":{}}]}}},"/api/v1/coi/analyze":{"post":{"operationId":"extract_and_check_a_certificate_of_insurance","summary":"Extract and check a certificate of insurance","description":"Extract PDF/image fields with confidence, then compare them with contract requirements. Uncertain OCR is WARN and is never treated as verified.","tags":["coi"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"fileBase64":{"type":"string","minLength":1,"maxLength":16777216},"mediaType":{"type":"string","enum":["application/pdf","image/png","image/jpeg"]},"requirements":{"type":"object","properties":{"namedInsured":{"type":"string"},"effectiveOn":{"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])))$"},"expiresAfter":{"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])))$"},"generalLiability":{"type":"object","properties":{"eachOccurrence":{"type":"number","minimum":0},"aggregate":{"type":"number","minimum":0}},"additionalProperties":false},"workersCompensation":{"type":"object","properties":{"statutory":{"type":"boolean"},"employerLiability":{"type":"number","minimum":0}},"additionalProperties":false},"automobileLiability":{"type":"object","properties":{"combinedSingleLimit":{"type":"number","minimum":0}},"additionalProperties":false},"umbrellaLiability":{"type":"object","properties":{"eachOccurrence":{"type":"number","minimum":0},"aggregate":{"type":"number","minimum":0}},"additionalProperties":false},"additionalInsured":{"type":"boolean"},"waiverOfSubrogation":{"type":"boolean"}},"additionalProperties":false},"vendorName":{"type":"string","maxLength":200},"projectName":{"type":"string","maxLength":200}},"required":["fileBase64","mediaType","requirements"],"additionalProperties":false},"example":{"fileBase64":"JVBERi0xLjcKJYGBgYEKCjYgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCAyNDAKPj4Kc3RyZWFtCnicfVBNS0UhEN37K1wH0ejoGYUI6nYvLdoE/oGI16OoRRH9/o6+97iXoBQdHc+HMx/upjnxfX7u3cXd7u179/Xy9HhuUksqYqX6EH17dqH4du/CgAafijcR397dZcpWEHBrggk5ChTZoiVUgEsReO75BeBeMZsaEeTMHXvl26trZxSauwwyUpS0wnjXa2Z+2SSlYMckmmXoMGSGLxOnrrIZfRwhhkFOh191YRUNcTnukTEqNmQrdKz9uxuH/+m29Q6ssZCyMI6CRkmj8igxkTZpF5FTXMk2gIdWTZQIMNig26mpFIh/CczNPbgfeI1l5gplbmRzdHJlYW0KZW5kb2JqCgo3IDAgb2JqCjw8Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9PYmpTdG0KL04gNQovRmlyc3QgMjYKL0xlbmd0aCAzNjgKPj4Kc3RyZWFtCnic1VJNS8NAEL3vr5ijHux+NMkmUgptkyiIWFpBUTykyVIiZVeSjdR/70zSWnoQzxIeuzPzZvdt5kkQoCAIYAw6hgDCsYIQtNQwmTD++PVhgC+LrWkZv6urFl6RI2AFb4wvXGc9SDadshN3Ufhi57ZsaAJJ5CNj2biqK00DkzzLcyG0ECIKEJEQKsV1gUgQCmOsqRj3CB0cgDk9FmI8w1o+INJDD9V7bnjoz3BFbkScdOAG8RD/3Et3ZcMZ6i89yZTxe1elhTdwkV4roSIphZRaBjJ5ucTf0ZjCu//7uF5/7eyvLzybM42XhtwY8kA/Zb4yreuaEsdOvNxhhTa3ZvdpfF0WV1okMerUcYIeOxiDPz9s3k3ZUynM9v5m7UnDkKDcvanqYu726D6BX5iEIxVDHMgRnoROnFnrPHmzd6X1qImi6ODUM+Eki/F1t/F9SEnJ+LxoTS/4pBal2NJVtd0Cf6rtzLb1MUEnfgOKSscqCmVuZHN0cmVhbQplbmRvYmoKCjggMCBvYmoKPDwKL1NpemUgOQovUm9vdCAyIDAgUgovSW5mbyAzIDAgUgovRmlsdGVyIC9GbGF0ZURlY29kZQovVHlwZSAvWFJlZgovTGVuZ3RoIDQyCi9XIFsgMSAyIDIgXQovSW5kZXggWyAwIDkgXQo+PgpzdHJlYW0KeJxjYGD4/5+JgZ2BAUQwgggmEMEMIlgYGQQYGBgZPYEEszwDAwBcVAK1CmVuZHN0cmVhbQplbmRvYmoKCnN0YXJ0eHJlZgo3NTkKJSVFT0Y=","mediaType":"application/pdf","requirements":{"generalLiability":{"eachOccurrence":1000000}},"vendorName":"Example Construction LLC","projectName":"Example project"}}}},"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":{"certificate":{"type":"object","properties":{"status":{"type":"string"},"mediaType":{"type":"string"},"extractionConfidence":{"type":"number"},"source":{"type":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"type":"string"},"confidence":{"type":"number"},"line":{"type":"number"},"excerpt":{"type":"string"}},"additionalProperties":true}},"textExcerpt":{"type":"string"},"limitations":{"type":"array","items":{}}},"additionalProperties":true},"comparison":{"type":"object","properties":{"status":{"type":"string"},"findings":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"status":{"type":"string"},"requirement":{"type":"string"},"observed":{"type":"null"}},"additionalProperties":true}},"reviewedBy":{"type":"string"}},"additionalProperties":true},"humanReviewRequired":{"type":"boolean"},"draftEmail":{"type":"object","properties":{"subject":{"type":"string"},"body":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true},"example":{"certificate":{"status":"EXTRACTED","mediaType":"application/pdf","extractionConfidence":0.92,"source":"Uploaded certificate","fields":[{"name":"namedInsured","value":"Example Construction LLC","confidence":0.92,"line":4,"excerpt":"Named Insured: Example Construction LLC"}],"textExcerpt":"Example certificate text","limitations":[]},"comparison":{"status":"WARN","findings":[{"ruleId":"COI-GL-OCC","status":"WARN","requirement":"GL each occurrence","observed":null}],"reviewedBy":"Deterministic contract-to-certificate precheck; human review required"},"humanReviewRequired":true,"draftEmail":{"subject":"Certificate of insurance update needed","body":"Please review the certificate findings."}}}}},"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.10"},"protocols":[{"x402":{}}]}}},"/api/v1/exclusion/normalize":{"post":{"operationId":"normalize_a_vendor_identity","summary":"Normalize a vendor identity","description":"Normalize identifiers before source screening. This operation does not determine eligibility.","tags":["exclusion"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"legalName":{"type":"string","minLength":1,"maxLength":240}},"required":["legalName"],"additionalProperties":false},"example":{"legalName":"Example Construction LLC","country":"USA"}}}},"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":{"legalName":{"type":"string"},"normalizedName":{"type":"string"},"warnings":{"type":"array","items":{}}},"additionalProperties":true},"example":{"legalName":"Example Construction LLC","normalizedName":"example construction","warnings":[]}}}},"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/exclusion/screen":{"post":{"operationId":"screen_a_vendor_against_ofac","summary":"Screen a vendor against OFAC","description":"Compare a vendor name with the official OFAC SDN list. Candidate matches require human review; source unavailability produces WARN.","tags":["exclusion"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"legalName":{"type":"string","minLength":1,"maxLength":240}},"required":["legalName"],"additionalProperties":false},"example":{"legalName":"Example Construction LLC","country":"USA"}}}},"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":{"checkId":{"type":"string"},"vendor":{"type":"object","properties":{"legalName":{"type":"string"},"normalizedName":{"type":"string"},"warnings":{"type":"array","items":{}}},"additionalProperties":true},"status":{"type":"string"},"matches":{"type":"array","items":{}},"sources":{"type":"object","properties":{"ofac":{"type":"object","properties":{"status":{"type":"string"},"url":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true},"snapshotHash":{"type":"string"}},"additionalProperties":true},"example":{"checkId":"0ed2a4d0-76b2-4c7f-9f2f-94d2f3e7d230","vendor":{"legalName":"Example Construction LLC","normalizedName":"example construction","warnings":[]},"status":"CLEAR","matches":[],"sources":{"ofac":{"status":"CHECKED","url":"https://sanctionslistservice.ofac.treas.gov/api/PublicationPreview/exports/SDN.XML"}},"snapshotHash":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"}}}},"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.15"},"protocols":[{"x402":{}}]}}},"/api/v1/exclusion/evidence-report":{"post":{"operationId":"build_an_exclusion_screening_evidence_report","summary":"Build an exclusion screening evidence report","description":"Screen a vendor name against the official OFAC SDN list and produce a PDF with source status, candidate records, timestamp, and snapshot hash. Matches are not identity confirmations.","tags":["exclusion"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"legalName":{"type":"string","minLength":1,"maxLength":240}},"required":["legalName"],"additionalProperties":false},"example":{"legalName":"Example Construction LLC","country":"USA"}}}},"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":{"checkId":{"type":"string"},"vendor":{"type":"object","properties":{"legalName":{"type":"string"},"normalizedName":{"type":"string"}},"additionalProperties":true},"status":{"type":"string"},"matches":{"type":"array","items":{}},"sources":{"type":"object","properties":{"ofac":{"type":"object","properties":{"status":{"type":"string"},"url":{"type":"string"}},"additionalProperties":true}},"additionalProperties":true},"snapshotHash":{"type":"string"},"checkedAt":{"type":"string"},"evidencePdfBase64":{"type":"string"},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkId":"5c12bf4e-3c45-4fdb-b7a4-d65e7e634f6a","vendor":{"legalName":"Example Construction LLC","normalizedName":"example construction"},"status":"CLEAR","matches":[],"sources":{"ofac":{"status":"CHECKED","url":"https://sanctionslistservice.ofac.treas.gov/api/PublicationPreview/exports/SDN.XML"}},"snapshotHash":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef","checkedAt":"2026-10-29T12:00:00.000Z","evidencePdfBase64":"<base64-encoded-pdf>","limitations":["Name screening can produce false positives or miss aliases. This is an evidence aid, not a legal 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.15"},"protocols":[{"x402":{}}]}}},"/api/v1/license/requirements":{"post":{"operationId":"read_verified_licence_renewal_requirements","summary":"Read verified licence renewal requirements","description":"Return source-linked rules only for supported Texas electrician and UK SIA licence types; unsupported jurisdictions remain explicitly unsupported.","tags":["license"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jurisdiction":{"type":"string","minLength":1,"maxLength":40},"licenseType":{"type":"string","minLength":1,"maxLength":120}},"required":["jurisdiction","licenseType"],"additionalProperties":false},"example":{"jurisdiction":"US-TX","licenseType":"Journeyman 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":{"jurisdiction":{"type":"string"},"licenseType":{"type":"string"},"coverage":{"type":"string"},"supported":{"type":"boolean"},"renewalCycle":{"type":"string"},"ceHours":{"type":"number"},"renewalFee":{"type":"object","properties":{"amount":{"type":"number"},"currency":{"type":"string"}},"additionalProperties":true},"renewalWindowMonths":{"type":"null"},"checklist":{"type":"array","items":{"type":"string"}},"sources":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"retrievedAt":{"type":"string"}},"additionalProperties":true}},"retrievedAt":{"type":"string"}},"additionalProperties":true},"example":{"jurisdiction":"US-TX","licenseType":"Journeyman Electrician","coverage":"verified","supported":true,"renewalCycle":"Annual","ceHours":4,"renewalFee":{"amount":30,"currency":"USD"},"renewalWindowMonths":null,"checklist":["Complete approved continuing education.","Submit the TDLR renewal application."],"sources":[{"url":"https://www.tdlr.texas.gov/electricians/renew/individuals/journeyman-electrician.htm","retrievedAt":"2026-10-28"}],"retrievedAt":"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/license/renewal-plan":{"post":{"operationId":"build_a_sourced_renewal_plan","summary":"Build a sourced renewal plan","description":"Calculate a renewal checklist and PDF from verified rules and caller-supplied expiry/CE data. Unsupported combinations remain unsupported.","tags":["license"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"jurisdiction":{"type":"string","minLength":1,"maxLength":40},"licenseType":{"type":"string","minLength":1,"maxLength":120},"expiresOn":{"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])))$"},"completedCeHours":{"default":0,"type":"number","minimum":0}},"required":["jurisdiction","licenseType","completedCeHours"],"additionalProperties":false},"example":{"jurisdiction":"US-TX","licenseType":"Journeyman Electrician","expiresOn":"2027-01-31","completedCeHours":2}}}},"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"},"supported":{"type":"boolean"},"jurisdiction":{"type":"string"},"licenseType":{"type":"string"},"expiresOn":{"type":"string"},"daysUntilExpiry":{"type":"number"},"startBy":{"type":"null"},"ceHoursRequired":{"type":"number"},"ceHoursCompleted":{"type":"number"},"ceHoursRemaining":{"type":"number"},"renewalFee":{"type":"object","properties":{"amount":{"type":"number"},"currency":{"type":"string"}},"additionalProperties":true},"checklist":{"type":"array","items":{"type":"string"}},"sources":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"retrievedAt":{"type":"string"}},"additionalProperties":true}},"retrievedAt":{"type":"string"},"pdfBase64":{"type":"string"}},"additionalProperties":true},"example":{"status":"WARN","supported":true,"jurisdiction":"US-TX","licenseType":"Journeyman Electrician","expiresOn":"2027-01-31","daysUntilExpiry":94,"startBy":null,"ceHoursRequired":4,"ceHoursCompleted":2,"ceHoursRemaining":2,"renewalFee":{"amount":30,"currency":"USD"},"checklist":["Complete approved continuing education."],"sources":[{"url":"https://www.tdlr.texas.gov/electricians/renew/individuals/journeyman-electrician.htm","retrievedAt":"2026-10-28"}],"retrievedAt":"2026-10-28","pdfBase64":"<base64-encoded-pdf>"}}}},"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/license/deadline-watch":{"post":{"operationId":"calculate_licence_reminder_dates","summary":"Calculate licence reminder dates","description":"Return reminder dates from a caller-supplied expiry date. This is data only; BRAINIAC.software does not send notifications.","tags":["license"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"expiresOn":{"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])))$"},"remindDays":{"default":[90,30,7],"minItems":1,"maxItems":20,"type":"array","items":{"type":"integer","minimum":0,"maximum":730}}},"required":["expiresOn","remindDays"],"additionalProperties":false},"example":{"expiresOn":"2027-01-31","remindDays":[90,30,7]}}}},"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":{"expiresOn":{"type":"string"},"reminders":{"type":"array","items":{"type":"object","properties":{"daysBefore":{"type":"number"},"date":{"type":"string"}},"additionalProperties":true}},"delivery":{"type":"string"}},"additionalProperties":true},"example":{"expiresOn":"2027-01-31","reminders":[{"daysBefore":90,"date":"2026-11-02"},{"daysBefore":30,"date":"2027-01-01"}],"delivery":"Reminder dates only; no notification is sent."}}}},"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/claims/analyze":{"post":{"operationId":"analyze_a_policy_and_prepare_claim_evidence","summary":"Analyze a policy and prepare claim evidence","description":"Extract policy clauses, run a preliminary text-match screen, and build a general evidence checklist. This is not legal advice or confirmation of coverage.","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"filename":{"default":"policy.pdf","type":"string","minLength":1,"maxLength":240},"fileBase64":{"type":"string","minLength":1,"maxLength":20971520},"incidentDate":{"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])))$"},"incidentType":{"type":"string","minLength":1,"maxLength":100},"description":{"type":"string","minLength":1,"maxLength":12000},"knownDocuments":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","maxLength":240}}},"required":["filename","fileBase64","incidentType","description","knownDocuments"],"additionalProperties":false},"example":{"filename":"policy.pdf","fileBase64":"JVBERi0xLjcKJYGBgYEKCjYgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCAyNTUKPj4Kc3RyZWFtCnicbZDNSgQxEITveYqcBTE/neoERNDZDB68CHkBkXVR9KCIz2+lB3ZFJZCkJ11V3/S7uxku+Lk+Du7idv/6tf98fnw419Cq1KC1+Zj8eHKx+nHnorVGL9VrCH68uUspWhGx04AFJQWeK28NWVsKEFZZC3Yo6CpXfry4cUZZxqpA0USxouTrFIqagVK8YDGraCZgb+J50hSIdUaVWVsQITYvvjDW9jor+nUlxFEXeFvpzi8qTOgnrM4HmfQb0sSc3DTOKv9bzvjNck6BHYtBR+AIF9E3DX0bUW0WP2PnEDOFRWcDIy0cnMPKJb//D00zd4P9M5ejbR/u3n0DxS9nngplbmRzdHJlYW0KZW5kb2JqCgo3IDAgb2JqCjw8Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9PYmpTdG0KL04gNQovRmlyc3QgMjYKL0xlbmd0aCAzNjgKPj4Kc3RyZWFtCnic1VJNS8NAEL3vr5ijHux+NMkmUgptkyiIWFpBUTykyVIiZVeSjdR/70zSWnoQzxIeuzPzZvdt5kkQoCAIYAw6hgDCsYIQtNQwmTD++PVhgC+LrWkZv6urFl6RI2AFb4wvXGc9SDadshN3Ufhi57ZsaAJJ5CNj2biqK00DkzzLcyG0ECIKEJEQKsV1gUgQCmOsqRj3CB0cgDk9FmI8w1o+INJDD9V7bnjoz3BFbkScdOAG8RD/3Et3ZcMZ6i89yZTxe1elhTdwkV4roSIphZRaBjJ5ucTf0ZjCu//7uF5/7eyvLzybM42XhtwY8kA/Zb4yreuaEsdOvNxhhTa3ZvdpfF0WV1okMerUcYIeOxiDPz9s3k3ZUynM9v5m7UnDkKDcvanqYu726D6BX5iEIxVDHMgRnoROnFnrPHmzd6X1qImi6ODUM+Eki/F1t/F9SEnJ+LxoTS/4pBal2NJVtd0Cf6rtzLb1MUEnfgOKSscqCmVuZHN0cmVhbQplbmRvYmoKCjggMCBvYmoKPDwKL1NpemUgOQovUm9vdCAyIDAgUgovSW5mbyAzIDAgUgovRmlsdGVyIC9GbGF0ZURlY29kZQovVHlwZSAvWFJlZgovTGVuZ3RoIDQyCi9XIFsgMSAyIDIgXQovSW5kZXggWyAwIDkgXQo+PgpzdHJlYW0KeJxjYGD4/5+JgZ2BAUQwgggmEMEMIlgYGQQYGBgZI4AEsx4DAwBc+QLTCmVuZHN0cmVhbQplbmRvYmoKCnN0YXJ0eHJlZgo4MTQKJSVFT0Y=","incidentDate":"2026-10-20","incidentType":"property damage","description":"Water damage in the insured building","knownDocuments":[]}}}},"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":{"policy":{"type":"object","properties":{"sourceHash":{"type":"string"},"parsedAt":{"type":"string"},"status":{"type":"string"},"confidence":{"type":"number"},"clauses":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"category":{"type":"string"},"heading":{"type":"string"},"excerpt":{"type":"string"},"confidence":{"type":"number"},"page":{"type":"number"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}},"noticePeriodDays":{"type":"null"}},"additionalProperties":true},"screening":{"type":"object","properties":{"status":{"type":"string"},"screeningOnly":{"type":"boolean"},"checklist":{"type":"array","items":{}},"noticePeriodDays":{"type":"null"},"disclaimer":{"type":"string"}},"additionalProperties":true},"evidence":{"type":"object","properties":{"incidentType":{"type":"string"},"checklist":{"type":"array","items":{}},"disclaimer":{"type":"string"}},"additionalProperties":true},"timeline":{"type":"object","properties":{"incidentDate":{"type":"string"},"noticePeriodDays":{"type":"null"},"noticeDueDate":{"type":"null"},"statutoryDeadlinesInferred":{"type":"boolean"}},"additionalProperties":true}},"additionalProperties":true},"example":{"policy":{"sourceHash":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef","parsedAt":"2026-10-29T12:00:00.000Z","status":"WARN","confidence":0.61,"clauses":[{"id":"clause-1","category":"coverage","heading":"Coverage","excerpt":"Example clause excerpt","confidence":0.61,"page":1}],"limitations":["Text extraction may omit scanned or image-only policy content."],"noticePeriodDays":null},"screening":{"status":"WARN","screeningOnly":true,"checklist":[],"noticePeriodDays":null,"disclaimer":"Preliminary text match only."},"evidence":{"incidentType":"property damage","checklist":[],"disclaimer":"General claim preparation suggestion."},"timeline":{"incidentDate":"2026-10-20","noticePeriodDays":null,"noticeDueDate":null,"statutoryDeadlinesInferred":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.10"},"protocols":[{"x402":{}}]}}},"/api/v1/claims/letter-draft":{"post":{"operationId":"draft_insurer_correspondence","summary":"Draft insurer correspondence","description":"Prepare a human-reviewed FNOL, follow-up, or complaint letter. BRAINIAC.software does not send the message or make legal conclusions.","tags":["claims"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"kind":{"type":"string","enum":["fnol","chase","complaint"]},"insurer":{"type":"string","minLength":1,"maxLength":200},"policyNumber":{"type":"string","maxLength":120},"claimNumber":{"type":"string","maxLength":120},"incidentDate":{"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])))$"},"summary":{"type":"string","minLength":1,"maxLength":6000},"requestedAction":{"type":"string","maxLength":2000}},"required":["kind","insurer","summary"],"additionalProperties":false},"example":{"kind":"fnol","insurer":"Example Insurer","incidentDate":"2026-10-20","summary":"Water damage occurred at the insured property."}}}},"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":{"subject":{"type":"string"},"body":{"type":"string"},"sent":{"type":"boolean"}},"additionalProperties":true},"example":{"subject":"First notice of loss - CLM-100","body":"To Example Insurer,\n\nPlease confirm the next steps.","sent":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.02"},"protocols":[{"x402":{}}]}}},"/api/v1/audit/receipt":{"post":{"operationId":"create_a_hash_based_audit_receipt","summary":"Create a hash-based audit receipt","description":"Create a stateless SHA-256 digest of supplied inputs, findings, and source revision. It is not a trusted signature or legal attestation.","tags":["audit"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"product":{"type":"string","enum":["prevailing_wage","coi","exclusion","license","claims"]},"inputs":{},"findings":{},"sourceRevision":{"type":"string","minLength":1,"maxLength":240}},"required":["product","inputs","findings","sourceRevision"],"additionalProperties":false},"example":{"product":"prevailing_wage","inputs":{"wdId":"TX20260001"},"findings":{"status":"WARN"},"sourceRevision":"TX20260001-revision-1"}}}},"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":{"algorithm":{"type":"string"},"digest":{"type":"string"},"issuedAt":{"type":"string"},"sourceRevision":{"type":"string"},"signature":{"type":"null"},"signed":{"type":"boolean"},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"algorithm":"sha256","digest":"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef","issuedAt":"2026-10-29T12:00:00.000Z","sourceRevision":"source-revision-1","signature":null,"signed":false,"limitations":["Digest integrity can be checked against the exact payload, but this stateless receipt is not signed by BRAINIAC.software and is not an authoritative attestation."]}}}},"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":{}}]}}}},"components":{"schemas":{"ApiError":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{}}}}}}}}