{"endpoints":[{"auth_required":false,"description":"Authenticate and receive JWT tokens","method":"POST","path":"/api/v1/auth/login"},{"auth_required":true,"description":"Logout (client discards token)","method":"POST","path":"/api/v1/auth/logout"},{"auth_required":true,"description":"Get current authenticated user","method":"GET","path":"/api/v1/auth/me"},{"auth_required":true,"description":"Refresh access token using refresh token","method":"POST","path":"/api/v1/auth/refresh"},{"auth_required":false,"description":"List all canonical libraries","method":"GET","path":"/api/v1/canonical-libs"},{"auth_required":true,"description":"Create a canonical library","method":"POST","path":"/api/v1/canonical-libs"},{"auth_required":false,"description":"Read a canonical library","method":"GET","path":"/api/v1/canonical-libs/<guid>"},{"auth_required":true,"description":"Update a canonical library","method":"PUT","path":"/api/v1/canonical-libs/<guid>"},{"auth_required":true,"description":"Delete a canonical library","method":"DELETE","path":"/api/v1/canonical-libs/<guid>"},{"auth_required":false,"description":"List all concept types","method":"GET","path":"/api/v1/concept-types"},{"auth_required":true,"description":"Create a concept type","method":"POST","path":"/api/v1/concept-types"},{"auth_required":false,"description":"Read a concept type","method":"GET","path":"/api/v1/concept-types/<guid>"},{"auth_required":true,"description":"Update a concept type","method":"PUT","path":"/api/v1/concept-types/<guid>"},{"auth_required":true,"description":"Delete a concept type","method":"DELETE","path":"/api/v1/concept-types/<guid>"},{"auth_required":false,"description":"List all response types","method":"GET","path":"/api/v1/response-types"},{"auth_required":true,"description":"Create a response type","method":"POST","path":"/api/v1/response-types"},{"auth_required":false,"description":"Read a response type","method":"GET","path":"/api/v1/response-types/<guid>"},{"auth_required":true,"description":"Update a response type","method":"PUT","path":"/api/v1/response-types/<guid>"},{"auth_required":true,"description":"Delete a response type","method":"DELETE","path":"/api/v1/response-types/<guid>"},{"auth_required":false,"description":"List all units","method":"GET","path":"/api/v1/units"},{"auth_required":true,"description":"Create a unit","method":"POST","path":"/api/v1/units"},{"auth_required":false,"description":"Read a unit","method":"GET","path":"/api/v1/units/<guid>"},{"auth_required":true,"description":"Update a unit","method":"PUT","path":"/api/v1/units/<guid>"},{"auth_required":true,"description":"Delete a unit","method":"DELETE","path":"/api/v1/units/<guid>"},{"auth_required":false,"description":"List all PlanDefinition types","method":"GET","path":"/api/v1/plandef-types"},{"auth_required":true,"description":"Create a PlanDefinition type","method":"POST","path":"/api/v1/plandef-types"},{"auth_required":false,"description":"Read a PlanDefinition type","method":"GET","path":"/api/v1/plandef-types/<guid>"},{"auth_required":true,"description":"Update a PlanDefinition type","method":"PUT","path":"/api/v1/plandef-types/<guid>"},{"auth_required":true,"description":"Delete a PlanDefinition type","method":"DELETE","path":"/api/v1/plandef-types/<guid>"},{"auth_required":false,"description":"List all intended uses","method":"GET","path":"/api/v1/intended-uses"},{"auth_required":true,"description":"Create an intended use","method":"POST","path":"/api/v1/intended-uses"},{"auth_required":false,"description":"Read an intended use","method":"GET","path":"/api/v1/intended-uses/<guid>"},{"auth_required":true,"description":"Update an intended use","method":"PUT","path":"/api/v1/intended-uses/<guid>"},{"auth_required":true,"description":"Delete an intended use","method":"DELETE","path":"/api/v1/intended-uses/<guid>"},{"auth_required":false,"description":"List all values","method":"GET","path":"/api/v1/values"},{"auth_required":true,"description":"Create a value","method":"POST","path":"/api/v1/values"},{"auth_required":false,"description":"Read a value","method":"GET","path":"/api/v1/values/<guid>"},{"auth_required":true,"description":"Update a value","method":"PUT","path":"/api/v1/values/<guid>"},{"auth_required":true,"description":"Delete a value","method":"DELETE","path":"/api/v1/values/<guid>"},{"auth_required":false,"description":"List all valuesets (paginated)","method":"GET","path":"/api/v1/valuesets"},{"auth_required":true,"description":"Create a valueset","method":"POST","path":"/api/v1/valuesets"},{"auth_required":false,"description":"Read a valueset","method":"GET","path":"/api/v1/valuesets/<guid>"},{"auth_required":true,"description":"Update a valueset","method":"PUT","path":"/api/v1/valuesets/<guid>"},{"auth_required":true,"description":"Delete a valueset","method":"DELETE","path":"/api/v1/valuesets/<guid>"},{"auth_required":false,"description":"List values in a valueset","method":"GET","path":"/api/v1/valuesets/<guid>/values"},{"auth_required":true,"description":"Add a value to a valueset","method":"POST","path":"/api/v1/valuesets/<guid>/values"},{"auth_required":true,"description":"Update sort order of a value in a valueset","method":"PUT","path":"/api/v1/valuesets/<guid>/values/<value_guid>"},{"auth_required":true,"description":"Remove a value from a valueset","method":"DELETE","path":"/api/v1/valuesets/<guid>/values/<value_guid>"},{"auth_required":false,"description":"List/search concepts (paginated, filterable)","method":"GET","path":"/api/v1/concepts"},{"auth_required":true,"description":"Create a concept","method":"POST","path":"/api/v1/concepts"},{"auth_required":false,"description":"Read a concept (includes valueset values)","method":"GET","path":"/api/v1/concepts/<guid>"},{"auth_required":true,"description":"Update a concept","method":"PUT","path":"/api/v1/concepts/<guid>"},{"auth_required":true,"description":"Delete a concept","method":"DELETE","path":"/api/v1/concepts/<guid>"},{"auth_required":false,"description":"List values for a concept","method":"GET","path":"/api/v1/concepts/<guid>/values"},{"auth_required":true,"description":"Add a value to a concept's valueset","method":"POST","path":"/api/v1/concepts/<guid>/values"},{"auth_required":true,"description":"Remove a value from a concept's valueset","method":"DELETE","path":"/api/v1/concepts/<guid>/values/<value_guid>"},{"auth_required":false,"description":"List/search PlanDefinitions (paginated)","method":"GET","path":"/api/v1/plandefinitions"},{"auth_required":true,"description":"Create a PlanDefinition with goals and activities","method":"POST","path":"/api/v1/plandefinitions"},{"auth_required":false,"description":"Read a PlanDefinition with full detail","method":"GET","path":"/api/v1/plandefinitions/<guid>"},{"auth_required":true,"description":"Update a PlanDefinition","method":"PUT","path":"/api/v1/plandefinitions/<guid>"},{"auth_required":true,"description":"Delete a PlanDefinition","method":"DELETE","path":"/api/v1/plandefinitions/<guid>"},{"auth_required":false,"description":"FHIR R5 searchset Bundle","method":"GET","path":"/api/v1/PlanDefinition"},{"auth_required":false,"description":"FHIR R5 PlanDefinition resource","method":"GET","path":"/api/v1/PlanDefinition/<fhir_id>"},{"auth_required":false,"description":"Force regenerate FHIR JSON","method":"GET","path":"/api/v1/PlanDefinition/<fhir_id>/$expand"},{"auth_required":"API key or SSO","description":"List form catalogue (paginated)","method":"GET","path":"/api/v1/forms"},{"auth_required":"API key or SSO","description":"Get form definition (latest or specific version)","method":"GET","path":"/api/v1/forms/<form_guid>"},{"auth_required":"API key or SSO","description":"Get version history for a form","method":"GET","path":"/api/v1/forms/<form_guid>/versions"},{"auth_required":true,"description":"Produce a FHIR Questionnaire from concepts or PlanDefinition","method":"POST","path":"/api/v1/forms/produce"},{"auth_required":true,"description":"Publish a form version (draft \u2192 active)","method":"POST","path":"/api/v1/forms/<form_guid>/publish"},{"auth_required":true,"description":"Check latest version immutability status","method":"GET","path":"/api/v1/forms/<form_guid>/immutability"},{"auth_required":true,"description":"List form definitions (paginated, filterable)","method":"GET","path":"/api/v1/form-definitions"},{"auth_required":true,"description":"Create a form definition","method":"POST","path":"/api/v1/form-definitions"},{"auth_required":true,"description":"Get form definition with resolved items","method":"GET","path":"/api/v1/form-definitions/<guid>"},{"auth_required":true,"description":"Update form definition metadata","method":"PUT","path":"/api/v1/form-definitions/<guid>"},{"auth_required":true,"description":"Delete a draft form definition","method":"DELETE","path":"/api/v1/form-definitions/<guid>"},{"auth_required":true,"description":"List items in a form definition","method":"GET","path":"/api/v1/form-definitions/<guid>/items"},{"auth_required":true,"description":"Add a concept to a form definition","method":"POST","path":"/api/v1/form-definitions/<guid>/items"},{"auth_required":true,"description":"Update item settings","method":"PUT","path":"/api/v1/form-definitions/<guid>/items/<item_guid>"},{"auth_required":true,"description":"Remove item from definition","method":"DELETE","path":"/api/v1/form-definitions/<guid>/items/<item_guid>"},{"auth_required":true,"description":"Bulk reorder items","method":"POST","path":"/api/v1/form-definitions/<guid>/reorder"},{"auth_required":true,"description":"Produce FHIR Questionnaire from definition","method":"POST","path":"/api/v1/form-definitions/<guid>/produce"},{"auth_required":true,"description":"Preview resolved form without persisting","method":"GET","path":"/api/v1/form-definitions/<guid>/preview"},{"auth_required":"API key or SSO","description":"Get produced FHIR Questionnaire JSON","method":"GET","path":"/api/v1/form-definitions/<guid>/questionnaire"},{"auth_required":"API key or SSO","description":"Get render-ready JSON for frontend integration","method":"GET","path":"/api/v1/form-definitions/<guid>/render-ready"},{"auth_required":false,"description":"List all available documentation files","method":"GET","path":"/api/v1/docs"},{"auth_required":false,"description":"Download a documentation file","method":"GET","path":"/api/v1/docs/<filename>"},{"auth_required":false,"description":"FHIR R5 CapabilityStatement resource","method":"GET","path":"/api/v1/metadata"}],"name":"PDHC PlanDef Builder API","total_endpoints":87,"version":"1.0.0"}
