{"openapi":"3.1.0","info":{"title":"Unland Evidence-aware API","version":"0.1.0","description":"Closed-access evidence-boundary and PSI protocol-audit tools. Public documentation contains schemas and access metadata only. Private records, source inventories, copyrighted documents, proprietary logic, and publication-gated research are excluded.","contact":{"name":"Trevor Unland","url":"https://unland.dev/contact"},"license":{"name":"Service terms not yet published"}},"servers":[{"url":"https://api.unland.dev"}],"tags":[{"name":"Evidence"},{"name":"PSI Methods"},{"name":"Discovery"}],"components":{"securitySchemes":{"UnlandApiKey":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Provisioned out of band. Credentials must not be placed in URLs or prompts."},"UnlandBearer":{"type":"http","scheme":"bearer","description":"The same provisioned credential may be sent as an HTTP Bearer token."}}},"paths":{"/health":{"get":{"operationId":"getHealth","summary":"Service and adapter status","responses":{"200":{"description":"Current service status"}}}},"/v1/catalog":{"get":{"operationId":"getCatalog","tags":["Discovery"],"summary":"Get the authenticated project and service catalog","security":[{"UnlandApiKey":[]},{"UnlandBearer":[]}],"responses":{"200":{"description":"Catalog"},"401":{"description":"Authentication required"},"429":{"description":"Rate limit exceeded"}}}},"/v1/evidence/boundary-check":{"post":{"operationId":"checkEvidenceBoundary","tags":["Evidence"],"summary":"Check what supplied evidence classes can support","security":[{"UnlandApiKey":[]},{"UnlandBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["claim","claimType","evidenceClasses"],"properties":{"claim":{"type":"string","minLength":3,"maxLength":2000},"claimType":{"type":"string","enum":["historical-record","mechanism","efficacy","causal","safety","product-hypothesis"]},"evidenceClasses":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"string","enum":["review","controlled-study","government-record","historical-primary","patent","secondary","navigation-aid","internal-observation"]}},"context":{"type":"string","maxLength":4000}}}}}},"responses":{"200":{"description":"Bounded support verdict and next checks"},"400":{"description":"Invalid input"},"401":{"description":"Authentication required"},"413":{"description":"Request too large"},"429":{"description":"Rate limit exceeded"}}}},"/v1/psi/protocol-audit":{"post":{"operationId":"auditPsiProtocol","tags":["PSI Methods"],"summary":"Audit PSI experimental protocol structure","security":[{"UnlandApiKey":[]},{"UnlandBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["protocolName","design","preregistered","hypothesisSpecified","sampleSizePlanned","stoppingRuleSpecified","targetPoolDefined","targetSelectionRandomized","randomSource","participantBlind","evaluatorBlind","leakageControlsDocumented","exclusionRulesSpecified","multipleComparisonPlan","controlCondition","timestampedTrialLog","rawDataExport","replicationPlan"],"properties":{"protocolName":{"type":"string","minLength":3,"maxLength":200},"design":{"type":"string","enum":["forced-choice","free-response","remote-perception","ganzfeld","rng-pk","presentiment","other"]},"preregistered":{"type":"boolean"},"hypothesisSpecified":{"type":"boolean"},"sampleSizePlanned":{"type":"boolean"},"stoppingRuleSpecified":{"type":"boolean"},"targetPoolDefined":{"type":"boolean"},"targetSelectionRandomized":{"type":"boolean"},"randomSource":{"type":"string","enum":["cryptographic","hardware","pseudorandom","manual","unspecified"]},"participantBlind":{"type":"boolean"},"evaluatorBlind":{"type":"boolean"},"leakageControlsDocumented":{"type":"boolean"},"exclusionRulesSpecified":{"type":"boolean"},"multipleComparisonPlan":{"type":"boolean"},"controlCondition":{"type":"boolean"},"timestampedTrialLog":{"type":"boolean"},"rawDataExport":{"type":"boolean"},"replicationPlan":{"type":"boolean"},"notes":{"type":"string","maxLength":5000}}}}}},"responses":{"200":{"description":"Protocol readiness and bounded next actions"},"400":{"description":"Invalid input"},"401":{"description":"Authentication required"},"413":{"description":"Request too large"},"429":{"description":"Rate limit exceeded"}}}},"/v1/psi/protocol-audit/full":{"post":{"operationId":"auditPsiProtocolFull","tags":["PSI Methods"],"summary":"Run the x402-gated detailed PSI protocol audit","description":"Testnet route priced at $0.01. An unpaid configured request returns HTTP 402 with PAYMENT-REQUIRED.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["protocolName","design","preregistered","hypothesisSpecified","sampleSizePlanned","stoppingRuleSpecified","targetPoolDefined","targetSelectionRandomized","randomSource","participantBlind","evaluatorBlind","leakageControlsDocumented","exclusionRulesSpecified","multipleComparisonPlan","controlCondition","timestampedTrialLog","rawDataExport","replicationPlan"],"properties":{"protocolName":{"type":"string","minLength":3,"maxLength":200},"design":{"type":"string","enum":["forced-choice","free-response","remote-perception","ganzfeld","rng-pk","presentiment","other"]},"preregistered":{"type":"boolean"},"hypothesisSpecified":{"type":"boolean"},"sampleSizePlanned":{"type":"boolean"},"stoppingRuleSpecified":{"type":"boolean"},"targetPoolDefined":{"type":"boolean"},"targetSelectionRandomized":{"type":"boolean"},"randomSource":{"type":"string","enum":["cryptographic","hardware","pseudorandom","manual","unspecified"]},"participantBlind":{"type":"boolean"},"evaluatorBlind":{"type":"boolean"},"leakageControlsDocumented":{"type":"boolean"},"exclusionRulesSpecified":{"type":"boolean"},"multipleComparisonPlan":{"type":"boolean"},"controlCondition":{"type":"boolean"},"timestampedTrialLog":{"type":"boolean"},"rawDataExport":{"type":"boolean"},"replicationPlan":{"type":"boolean"},"notes":{"type":"string","maxLength":5000}}}}}},"responses":{"200":{"description":"Detailed audit after payment"},"402":{"description":"Payment required"},"503":{"description":"Testnet receiving address not configured"}}}}}}