{"openapi":"3.1.0","info":{"title":"FastClinic API","description":"Open integration access to FastClinic's entirely synthetic clinical demo data.\n\n**Access model:** reads are public. Selected writes are implemented but disabled unless the deployment configures `FASTSME_API_TOKEN`; write clients then send it as a bearer token.","contact":{"name":"FastSME","url":"https://fastsme.com/"},"license":{"name":"MIT"},"version":"1.0.0"},"servers":[{"url":"https://fastclinic.dev/api","description":"Production"}],"paths":{"/":{"get":{"tags":["System"],"summary":"Api Index","operationId":"api_index__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Api Index  Get"}}}}}}},"/v1/health":{"get":{"tags":["System"],"summary":"Api Health","operationId":"api_health_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/v1/patients":{"get":{"tags":["Patients"],"summary":"List patients","description":"Synthetic patient demographic and registration records.","operationId":"list_patients","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Case-insensitive text search","title":"Q"},"description":"Case-insensitive text search"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatientsCollection"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/patients/{item_id}":{"get":{"tags":["Patients"],"summary":"Get one patients record","operationId":"get_patients","parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","title":"Item Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatientsResource"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/consultations":{"get":{"tags":["Consultations"],"summary":"List consultations","description":"Synthetic consultation activity and revenue.","operationId":"list_consultations","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Case-insensitive text search","title":"Q"},"description":"Case-insensitive text search"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsultationsCollection"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/consultations/{item_id}":{"get":{"tags":["Consultations"],"summary":"Get one consultations record","operationId":"get_consultations","parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","title":"Item Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsultationsResource"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/treatments":{"get":{"tags":["Treatments"],"summary":"List treatments","description":"Billable treatment lines classified by category and specialty.","operationId":"list_treatments","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Case-insensitive text search","title":"Q"},"description":"Case-insensitive text search"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TreatmentsCollection"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/treatments/{item_id}":{"get":{"tags":["Treatments"],"summary":"Get one treatments record","operationId":"get_treatments","parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","title":"Item Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TreatmentsResource"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/diagnoses":{"get":{"tags":["Diagnoses"],"summary":"List diagnoses","description":"Synthetic diagnosis records linked to consultations.","operationId":"list_diagnoses","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Case-insensitive text search","title":"Q"},"description":"Case-insensitive text search"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiagnosesCollection"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/diagnoses/{item_id}":{"get":{"tags":["Diagnoses"],"summary":"Get one diagnoses record","operationId":"get_diagnoses","parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","title":"Item Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiagnosesResource"}}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not Found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/appointments":{"get":{"tags":["Appointments"],"summary":"List Appointments","description":"List operational appointment records.","operationId":"list_appointments_v1_appointments_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Appointments"],"summary":"Create Appointment","description":"Book a synthetic appointment after bearer-token authentication.","operationId":"create_appointment_v1_appointments_post","security":[{"FastSME API token":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppointmentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/external/availability":{"get":{"tags":["External booking"],"summary":"External Availability","description":"Return bookable slots without exposing patient or clinical data.","operationId":"external_availability_v1_external_availability_get","parameters":[{"name":"practitioner_id","in":"query","required":true,"schema":{"type":"integer","title":"Practitioner Id"}},{"name":"day","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Day"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/external/appointments":{"post":{"tags":["External booking"],"summary":"Create External Appointment","description":"Reserve an operational appointment for FastBooking.\n\nGuest contact data is scheduling-only operational data. This endpoint does\nnot create a clinical record, consultation, diagnosis, or treatment.","operationId":"create_external_appointment_v1_external_appointments_post","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"title":"Idempotency-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalAppointmentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/external/appointments/{appointment_id}/cancel":{"post":{"tags":["External booking"],"summary":"Cancel External Appointment","description":"Cancel an externally-created appointment and release its slot.","operationId":"cancel_external_appointment_v1_external_appointments__appointment_id__cancel_post","parameters":[{"name":"appointment_id","in":"path","required":true,"schema":{"type":"integer","title":"Appointment Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AppointmentCreate":{"properties":{"subject_id":{"type":"integer","title":"Subject Id","description":"Synthetic patient identifier"},"clinician_id":{"type":"integer","title":"Clinician Id"},"start_at":{"type":"string","title":"Start At","examples":["2026-08-03 09:00"]},"duration_min":{"type":"integer","maximum":240.0,"minimum":10.0,"title":"Duration Min","default":20},"reason":{"type":"string","title":"Reason","default":""},"room":{"type":"string","title":"Room","default":""}},"type":"object","required":["subject_id","clinician_id","start_at"],"title":"AppointmentCreate"},"ConsultationsCollection":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ConsultationsResource"},"type":"array","title":"Data"},"meta":{"$ref":"#/components/schemas/PaginationMeta"}},"type":"object","required":["data","meta"],"title":"ConsultationsCollection"},"ConsultationsResource":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"subject_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"},"consult_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Consult At"},"revenue_vat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Revenue Vat"},"item_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Item Count"},"is_visit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Is Visit"},"clinician_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Clinician Id"}},"type":"object","title":"ConsultationsResource"},"DiagnosesCollection":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DiagnosesResource"},"type":"array","title":"Data"},"meta":{"$ref":"#/components/schemas/PaginationMeta"}},"type":"object","required":["data","meta"],"title":"DiagnosesCollection"},"DiagnosesResource":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"consultation_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Consultation Id"},"subject_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"diagnosis":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Diagnosis"},"diagnosis_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Diagnosis At"},"clinician_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Clinician Id"},"additional_info":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Info"},"consultation_item_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Consultation Item Id"},"is_custom":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Is Custom"},"post_consultation":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Post Consultation"},"created":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created"},"modified":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified"},"created_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created User Id"},"modified_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Modified User Id"}},"type":"object","title":"DiagnosesResource"},"ErrorDetail":{"properties":{"code":{"type":"string","title":"Code"},"message":{"type":"string","title":"Message"},"details":{"additionalProperties":true,"type":"object","title":"Details"}},"type":"object","required":["code","message"],"title":"ErrorDetail","description":"Machine-readable API error."},"ErrorEnvelope":{"properties":{"error":{"$ref":"#/components/schemas/ErrorDetail"}},"type":"object","required":["error"],"title":"ErrorEnvelope","description":"Consistent error response envelope."},"ExternalAppointmentCreate":{"properties":{"practitioner_id":{"type":"string","title":"Practitioner Id"},"service_id":{"type":"string","title":"Service Id"},"starts_at":{"type":"string","title":"Starts At"},"duration_min":{"type":"integer","maximum":240.0,"minimum":10.0,"title":"Duration Min","default":20},"guest":{"$ref":"#/components/schemas/ExternalGuest"},"notes":{"type":"string","maxLength":2000,"title":"Notes","default":""}},"type":"object","required":["practitioner_id","service_id","starts_at","guest"],"title":"ExternalAppointmentCreate"},"ExternalGuest":{"properties":{"name":{"type":"string","maxLength":160,"minLength":1,"title":"Name"},"email":{"type":"string","maxLength":320,"minLength":3,"title":"Email"},"phone":{"type":"string","maxLength":40,"title":"Phone","default":""}},"type":"object","required":["name","email"],"title":"ExternalGuest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status"},"product":{"type":"string","title":"Product"},"version":{"type":"string","title":"Version"},"writes_enabled":{"type":"boolean","title":"Writes Enabled"}},"type":"object","required":["status","product","version","writes_enabled"],"title":"HealthResponse","description":"API health response."},"PaginationMeta":{"properties":{"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["total","limit","offset"],"title":"PaginationMeta","description":"Offset pagination metadata."},"PatientsCollection":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PatientsResource"},"type":"array","title":"Data"},"meta":{"$ref":"#/components/schemas/PaginationMeta"}},"type":"object","required":["data","meta"],"title":"PatientsCollection"},"PatientsResource":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"party_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Party Id"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date Of Birth"},"date_of_registration":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date Of Registration"},"deceased_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deceased At"},"archived":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Archived"},"critical_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Critical Notes"},"remarks":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remarks"},"official_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Official Name"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"zip_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zip Code"},"street_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street Address"},"street_address_2":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street Address 2"},"current_location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Location"},"country_region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country Region"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"last_consultation_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Consultation Id"},"insurance":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Insurance"},"insurance_company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance Company"},"blood_group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Blood Group"},"nhs_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nhs Number"},"registered_clinician_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Registered Clinician Id"},"home_department_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Home Department Id"},"old_patient_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Old Patient Id"},"private":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Private"},"external":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"External"},"imported":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Imported"},"date_imported":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date Imported"},"created":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created"},"modified":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified"},"created_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created User Id"},"modified_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Modified User Id"}},"type":"object","title":"PatientsResource"},"TreatmentsCollection":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TreatmentsResource"},"type":"array","title":"Data"},"meta":{"$ref":"#/components/schemas/PaginationMeta"}},"type":"object","required":["data","meta"],"title":"TreatmentsCollection"},"TreatmentsResource":{"properties":{"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Id"},"consultation_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Consultation Id"},"subject_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Subject Id"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"item_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Item Id"},"quantity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Quantity"},"unit_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Unit Price"},"unit_price_vat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Unit Price Vat"},"vat_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vat Pct"},"type_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type Code"},"performed_by_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Performed By Id"},"clinician_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Clinician Id"},"item_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Item At"},"used":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Used"},"modified":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified"},"created_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created User Id"},"modified_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Modified User Id"},"hide_on_consultation":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Hide On Consultation"},"parent_linked_item_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Linked Item Id"},"template_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Template Id"},"template_item_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Template Item Id"},"no_department_rates":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"No Department Rates"},"no_commissions":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"No Commissions"},"is_dispense_fee_item":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Is Dispense Fee Item"},"is_injection_fee_item":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Is Injection Fee Item"},"patient_group_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Patient Group Id"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"specialty":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Specialty"},"line_total_vat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Line Total Vat"}},"type":"object","title":"TreatmentsResource"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"FastSME API token":{"type":"http","description":"Selected writes require `Authorization: Bearer <token>`. Reads are public. Set FASTSME_API_TOKEN to enable writes.","scheme":"bearer"}}}}