{"openapi":"3.1.0","info":{"title":"License API App","description":"RELD (Real Estate License Database) REST API. Protected `/api/v1/*` routes require HTTP bearer authentication with a dashboard API key. Exact parameters, request bodies, and response shapes are defined in this schema.","version":"0.1.0"},"paths":{"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Health Get"}}}}}}},"/api/v1/states":{"get":{"tags":["states"],"summary":"List States","operationId":"list_states_api_v1_states_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List States Api V1 States Get"}}}}},"security":[{"ApiKeyBearer":[]}]}},"/api/v1/sources":{"get":{"tags":["sources"],"summary":"List Sources","operationId":"list_sources_api_v1_sources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List Sources Api V1 Sources Get"}}}}},"security":[{"ApiKeyBearer":[]}]}},"/api/v1/sources/coverage":{"get":{"tags":["sources"],"summary":"Coverage","operationId":"coverage_api_v1_sources_coverage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Coverage Api V1 Sources Coverage Get"}}}}},"security":[{"ApiKeyBearer":[]}]}},"/api/v1/coverage":{"get":{"tags":["coverage"],"summary":"Coverage","operationId":"coverage_api_v1_coverage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Coverage Api V1 Coverage Get"}}}}}}},"/api/v1/licenses/search":{"get":{"tags":["licenses"],"summary":"Licenses Search","operationId":"licenses_search_api_v1_licenses_search_get","security":[{"ApiKeyBearer":[]}],"parameters":[{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},{"name":"license_number","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License Number"}},{"name":"first_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"}},{"name":"last_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"}},{"name":"business_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Name"}},{"name":"license_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License Type"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"city","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Per Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Licenses Search Api V1 Licenses Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/licenses/license-type-counts":{"get":{"tags":["licenses"],"summary":"License Type Counts","operationId":"license_type_counts_api_v1_licenses_license_type_counts_get","security":[{"ApiKeyBearer":[]}],"parameters":[{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response License Type Counts Api V1 Licenses License Type Counts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/licenses/{state}/{license_number}":{"get":{"tags":["licenses"],"summary":"License Lookup","operationId":"license_lookup_api_v1_licenses__state___license_number__get","security":[{"ApiKeyBearer":[]}],"parameters":[{"name":"state","in":"path","required":true,"schema":{"type":"string","title":"State"}},{"name":"license_number","in":"path","required":true,"schema":{"type":"string","title":"License Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response License Lookup Api V1 Licenses  State   License Number  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/licensees":{"get":{"tags":["licensees"],"summary":"Search licensees (canonical)","description":"Primary search endpoint for new integrations. Requires `state`. Supports `name`, `first_name`, `last_name`, `business_name`, `status`, `license_type`, `brokerage`, `city`, and pagination.","operationId":"licensees_search_api_v1_licensees_get","security":[{"ApiKeyBearer":[]}],"parameters":[{"name":"state","in":"query","required":true,"schema":{"type":"string","title":"State"}},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},{"name":"first_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"}},{"name":"last_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"}},{"name":"business_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Name"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"license_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License Type"}},{"name":"brokerage","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brokerage"}},{"name":"city","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Per Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Licensees Search Api V1 Licensees Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/licensees/search":{"get":{"tags":["licensees"],"summary":"Search licensees (legacy)","description":"Backward-compatible search that accepts `first_name` and `last_name` separately. Does not support `name`, `brokerage`, or `license_type`. New integrations should use `GET /api/v1/licensees` instead.","operationId":"licensees_search_legacy_api_v1_licensees_search_get","deprecated":true,"security":[{"ApiKeyBearer":[]}],"parameters":[{"name":"state","in":"query","required":true,"schema":{"type":"string","title":"State"}},{"name":"first_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"}},{"name":"last_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name"}},{"name":"business_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Name"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"city","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Per Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Licensees Search Legacy Api V1 Licensees Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/licensees/verify":{"get":{"tags":["licensees"],"summary":"Licensees Verify","operationId":"licensees_verify_api_v1_licensees_verify_get","security":[{"ApiKeyBearer":[]}],"parameters":[{"name":"state","in":"query","required":true,"schema":{"type":"string","title":"State"}},{"name":"license_number","in":"query","required":true,"schema":{"type":"string","title":"License Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Licensees Verify Api V1 Licensees Verify Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/licensees/batch":{"post":{"tags":["licensees"],"summary":"Licensees Batch Verify","operationId":"licensees_batch_verify_api_v1_licensees_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchVerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Licensees Batch Verify Api V1 Licensees Batch Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyBearer":[]}]}},"/api/v1/licensees/changes":{"get":{"tags":["licensees"],"summary":"Licensee changes feed (reserved stub)","description":"Reserved for a future incremental change feed. Currently returns an empty `data` array. Do not build production sync jobs against this endpoint yet.","operationId":"licensees_changes_api_v1_licensees_changes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Licensees Changes Api V1 Licensees Changes Get"}}}}},"deprecated":true,"security":[{"ApiKeyBearer":[]}]}},"/api/v1/licensees/{state}/{license_number}":{"get":{"tags":["licensees"],"summary":"Licensees Get","operationId":"licensees_get_api_v1_licensees__state___license_number__get","security":[{"ApiKeyBearer":[]}],"parameters":[{"name":"state","in":"path","required":true,"schema":{"type":"string","title":"State"}},{"name":"license_number","in":"path","required":true,"schema":{"type":"string","title":"License Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Licensees Get Api V1 Licensees  State   License Number  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/licensees/{state}/{license_number}/affiliations":{"get":{"tags":["licensees"],"summary":"Licensees Affiliations","operationId":"licensees_affiliations_api_v1_licensees__state___license_number__affiliations_get","security":[{"ApiKeyBearer":[]}],"parameters":[{"name":"state","in":"path","required":true,"schema":{"type":"string","title":"State"}},{"name":"license_number","in":"path","required":true,"schema":{"type":"string","title":"License Number"}},{"name":"as_of","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"As Of"}},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"affiliate_role","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Affiliate Role"}},{"name":"relationship_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AffiliationHistoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/licensees/{state}/{license_number}/supervisors":{"get":{"tags":["licensees"],"summary":"Current supervisors (recommended)","description":"Returns all currently open supervisor relationships. Empty `data` (not 404) when none are on file.","operationId":"licensees_supervisors_api_v1_licensees__state___license_number__supervisors_get","security":[{"ApiKeyBearer":[]}],"parameters":[{"name":"state","in":"path","required":true,"schema":{"type":"string","title":"State"}},{"name":"license_number","in":"path","required":true,"schema":{"type":"string","title":"License Number"}},{"name":"affiliate_role","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Affiliate Role"}},{"name":"relationship_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupervisorsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/licensees/{state}/{license_number}/supervisor":{"get":{"tags":["licensees"],"summary":"Current supervisor (legacy single)","description":"Returns at most one current supervising broker. Legacy — prefer `GET /api/v1/licensees/{state}/{license_number}/supervisors`, which returns all open supervisor relationships (required for CA broker-associates).","operationId":"licensees_supervisor_api_v1_licensees__state___license_number__supervisor_get","deprecated":true,"security":[{"ApiKeyBearer":[]}],"parameters":[{"name":"state","in":"path","required":true,"schema":{"type":"string","title":"State"}},{"name":"license_number","in":"path","required":true,"schema":{"type":"string","title":"License Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupervisorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/licensees/{state}/{license_number}/affiliates":{"get":{"tags":["licensees"],"summary":"Licensees Affiliates","operationId":"licensees_affiliates_api_v1_licensees__state___license_number__affiliates_get","security":[{"ApiKeyBearer":[]}],"parameters":[{"name":"state","in":"path","required":true,"schema":{"type":"string","title":"State"}},{"name":"license_number","in":"path","required":true,"schema":{"type":"string","title":"License Number"}},{"name":"affiliate_role","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Affiliate Role"}},{"name":"relationship_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship Type"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Per Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AffiliatesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/license-credentials/{credential_id}/hierarchy":{"get":{"tags":["license-credentials"],"summary":"License Credential Hierarchy","operationId":"license_credential_hierarchy_api_v1_license_credentials__credential_id__hierarchy_get","security":[{"ApiKeyBearer":[]}],"parameters":[{"name":"credential_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Credential Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response License Credential Hierarchy Api V1 License Credentials  Credential Id  Hierarchy Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/readiness":{"get":{"tags":["readiness"],"summary":"Readiness","operationId":"readiness_api_v1_readiness_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Readiness Api V1 Readiness Get"}}}}},"security":[{"ApiKeyBearer":[]}]}},"/api/v1/account":{"get":{"tags":["account"],"summary":"Get Account","operationId":"get_account_api_v1_account_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Account Api V1 Account Get"}}}}},"security":[{"ApiKeyBearer":[]}]}},"/api/v1/account/usage":{"get":{"tags":["account"],"summary":"Get Account Usage","operationId":"get_account_usage_api_v1_account_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Account Usage Api V1 Account Usage Get"}}}}},"security":[{"ApiKeyBearer":[]}]}},"/api/v1/api-keys":{"get":{"tags":["api-keys"],"summary":"List Keys","operationId":"list_keys_api_v1_api_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List Keys Api V1 Api Keys Get"}}}}},"security":[{"ApiKeyBearer":[]}]},"post":{"tags":["api-keys"],"summary":"Create Key","operationId":"create_key_api_v1_api_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyCreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Key Api V1 Api Keys Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyBearer":[]}]}},"/api/v1/api-keys/{key_id}":{"delete":{"tags":["api-keys"],"summary":"Delete Key","operationId":"delete_key_api_v1_api_keys__key_id__delete","security":[{"ApiKeyBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Key Api V1 Api Keys  Key Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/checkout":{"post":{"tags":["billing"],"summary":"Billing Checkout","operationId":"billing_checkout_api_v1_billing_checkout_post","security":[{"ApiKeyBearer":[]}],"parameters":[{"name":"plan","in":"query","required":true,"schema":{"type":"string","title":"Plan"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Billing Checkout Api V1 Billing Checkout Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/portal":{"post":{"tags":["billing"],"summary":"Billing Portal","operationId":"billing_portal_api_v1_billing_portal_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Billing Portal Api V1 Billing Portal Post"}}}}},"security":[{"ApiKeyBearer":[]}]}},"/webhooks/stripe":{"post":{"tags":["webhooks"],"summary":"Stripe Webhook","operationId":"stripe_webhook_webhooks_stripe_post","parameters":[{"name":"Stripe-Signature","in":"header","required":true,"schema":{"type":"string","title":"Stripe-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Stripe Webhook Webhooks Stripe Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/ingestion-runs":{"get":{"tags":["admin"],"summary":"Ingestion Runs","operationId":"ingestion_runs_api_v1_admin_ingestion_runs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Ingestion Runs Api V1 Admin Ingestion Runs Get"}}}}},"security":[{"ApiKeyBearer":[]}]}},"/api/v1/admin/sources":{"get":{"tags":["admin"],"summary":"Admin Sources","operationId":"admin_sources_api_v1_admin_sources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Admin Sources Api V1 Admin Sources Get"}}}}},"security":[{"ApiKeyBearer":[]}]}},"/api/v1/admin/failures":{"get":{"tags":["admin"],"summary":"Recent Failures","operationId":"recent_failures_api_v1_admin_failures_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response Recent Failures Api V1 Admin Failures Get"}}}}},"security":[{"ApiKeyBearer":[]}]}},"/api/v1/admin/ingestions":{"post":{"tags":["admin"],"summary":"Admin Ingest Affiliation File","operationId":"admin_ingest_affiliation_file_api_v1_admin_ingestions_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_admin_ingest_affiliation_file_api_v1_admin_ingestions_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Admin Ingest Affiliation File Api V1 Admin Ingestions Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyBearer":[]}]}},"/dashboard/signup":{"get":{"tags":["dashboard"],"summary":"Signup Page","operationId":"signup_page_dashboard_signup_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"tags":["dashboard"],"summary":"Signup Submit","operationId":"signup_submit_dashboard_signup_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_signup_submit_dashboard_signup_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/login":{"get":{"tags":["dashboard"],"summary":"Login Page","operationId":"login_page_dashboard_login_get","parameters":[{"name":"verified","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verified"}},{"name":"verify","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verify"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["dashboard"],"summary":"Login Submit","operationId":"login_submit_dashboard_login_post","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_login_submit_dashboard_login_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/logout":{"post":{"tags":["dashboard"],"summary":"Logout","operationId":"logout_dashboard_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/terms/accept":{"get":{"tags":["dashboard"],"summary":"Terms Acceptance Page","operationId":"terms_acceptance_page_dashboard_terms_accept_get","parameters":[{"name":"next","in":"query","required":false,"schema":{"type":"string","default":"/dashboard/","title":"Next"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["dashboard"],"summary":"Terms Acceptance Submit","operationId":"terms_acceptance_submit_dashboard_terms_accept_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_terms_acceptance_submit_dashboard_terms_accept_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/verify-email":{"get":{"tags":["dashboard"],"summary":"Verify Email Page","operationId":"verify_email_page_dashboard_verify_email_get","parameters":[{"name":"sent","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sent"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/verify-email/resend":{"post":{"tags":["dashboard"],"summary":"Verify Email Resend","operationId":"verify_email_resend_dashboard_verify_email_resend_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/verify-email/confirm":{"get":{"tags":["dashboard"],"summary":"Verify Email Confirm","operationId":"verify_email_confirm_dashboard_verify_email_confirm_get","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/forgot-password":{"get":{"tags":["dashboard"],"summary":"Forgot Password Page","operationId":"forgot_password_page_dashboard_forgot_password_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"tags":["dashboard"],"summary":"Forgot Password Submit","operationId":"forgot_password_submit_dashboard_forgot_password_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_forgot_password_submit_dashboard_forgot_password_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/reset-password":{"get":{"tags":["dashboard"],"summary":"Reset Password Page","operationId":"reset_password_page_dashboard_reset_password_get","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["dashboard"],"summary":"Reset Password Submit","operationId":"reset_password_submit_dashboard_reset_password_post","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_reset_password_submit_dashboard_reset_password_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/api-keys/create":{"post":{"tags":["dashboard"],"summary":"Dashboard Create Api Key","operationId":"dashboard_create_api_key_dashboard_api_keys_create_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_dashboard_create_api_key_dashboard_api_keys_create_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/api-keys/{key_id}/revoke":{"post":{"tags":["dashboard"],"summary":"Dashboard Revoke Api Key","operationId":"dashboard_revoke_api_key_dashboard_api_keys__key_id__revoke_post","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/billing/checkout":{"post":{"tags":["dashboard"],"summary":"Dashboard Billing Checkout","operationId":"dashboard_billing_checkout_dashboard_billing_checkout_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_dashboard_billing_checkout_dashboard_billing_checkout_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/billing/start-now":{"post":{"tags":["dashboard"],"summary":"Dashboard Billing Start Now","description":"End the current trial immediately so Stripe starts billing now.","operationId":"dashboard_billing_start_now_dashboard_billing_start_now_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard/billing/portal":{"post":{"tags":["dashboard"],"summary":"Dashboard Billing Portal","description":"Redirect to the Stripe Customer Portal.\n\nWithout ``flow`` the user lands on the portal home (full self-service:\ncancel, update card, change plan, view invoices). Passing a known\n``flow`` value deep-links into a single action — currently\n``update_card`` and ``cancel``.","operationId":"dashboard_billing_portal_dashboard_billing_portal_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_dashboard_billing_portal_dashboard_billing_portal_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/billing/success":{"get":{"tags":["dashboard"],"summary":"Billing Success","operationId":"billing_success_dashboard_billing_success_get","parameters":[{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/":{"get":{"tags":["dashboard"],"summary":"Overview","operationId":"overview_dashboard__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard/admin":{"get":{"tags":["dashboard"],"summary":"Admin Overview","operationId":"admin_overview_dashboard_admin_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"name":"show_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Show Inactive"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/accounts/new":{"get":{"tags":["dashboard"],"summary":"Admin New Account Form","operationId":"admin_new_account_form_dashboard_admin_accounts_new_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"tags":["dashboard"],"summary":"Admin New Account Submit","operationId":"admin_new_account_submit_dashboard_admin_accounts_new_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_admin_new_account_submit_dashboard_admin_accounts_new_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/accounts/{account_id}":{"get":{"tags":["dashboard"],"summary":"Admin Account Detail","operationId":"admin_account_detail_dashboard_admin_accounts__account_id__get","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/accounts/{account_id}/create-key":{"post":{"tags":["dashboard"],"summary":"Admin Create Api Key","operationId":"admin_create_api_key_dashboard_admin_accounts__account_id__create_key_post","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_admin_create_api_key_dashboard_admin_accounts__account_id__create_key_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/accounts/{account_id}/keys/{key_id}/revoke":{"post":{"tags":["dashboard"],"summary":"Admin Revoke Api Key","description":"Revoke any account's API key. Mirrors the user-scoped revoke at\n`/dashboard/api-keys/{key_id}/revoke` but operates cross-account so\noperators can kill credentials during incident response without having\nto log in as the customer.","operationId":"admin_revoke_api_key_dashboard_admin_accounts__account_id__keys__key_id__revoke_post","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}},{"name":"key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/accounts/{account_id}/transfer-owner":{"post":{"tags":["dashboard"],"summary":"Admin Transfer Account Owner","operationId":"admin_transfer_account_owner_dashboard_admin_accounts__account_id__transfer_owner_post","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_admin_transfer_account_owner_dashboard_admin_accounts__account_id__transfer_owner_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/accounts/{account_id}/deactivate":{"post":{"tags":["dashboard"],"summary":"Admin Deactivate Account","description":"Freeze an account: revoke all its keys and deactivate all its users.\n\nSee `app/services/account.py::deactivate_account` for the cascade rules.","operationId":"admin_deactivate_account_dashboard_admin_accounts__account_id__deactivate_post","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/accounts/{account_id}/reactivate":{"post":{"tags":["dashboard"],"summary":"Admin Reactivate Account","description":"Thaw a frozen account: restore the account flag and reactivate all\nusers. Does NOT auto-restore revoked API keys — the operator must mint\nfresh credentials.","operationId":"admin_reactivate_account_dashboard_admin_accounts__account_id__reactivate_post","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/admin/accounts/{account_id}/rename":{"post":{"tags":["dashboard"],"summary":"Admin Rename Account","description":"Rename an account (typo fix). Empty/whitespace-only names are rejected\nwith 400; missing accounts are 404. The redirect target is the same\ndetail page so the operator immediately sees the new name.","operationId":"admin_rename_account_dashboard_admin_accounts__account_id__rename_post","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_admin_rename_account_dashboard_admin_accounts__account_id__rename_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"APIKeyCreateRequest":{"properties":{"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},"type":"object","title":"APIKeyCreateRequest"},"AffiliateItem":{"properties":{"affiliate_license_credential_id":{"type":"string","title":"Affiliate License Credential Id"},"license_number":{"type":"string","title":"License Number"},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"license_class":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License Class"},"affiliate_role":{"type":"string","title":"Affiliate Role"},"relationship_type":{"type":"string","title":"Relationship Type"},"effective_from":{"type":"string","title":"Effective From"}},"type":"object","required":["affiliate_license_credential_id","license_number","affiliate_role","relationship_type","effective_from"],"title":"AffiliateItem"},"AffiliatesResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/AffiliateItem"},"type":"array","title":"Data"},"meta":{"$ref":"#/components/schemas/PaginationMeta"}},"type":"object","required":["data","meta"],"title":"AffiliatesResponse"},"AffiliationHistoryItem":{"properties":{"supervisor_license_credential_id":{"type":"string","title":"Supervisor License Credential Id"},"supervisor_license_number":{"type":"string","title":"Supervisor License Number"},"supervisor_full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Supervisor Full Name"},"affiliate_role":{"type":"string","title":"Affiliate Role"},"relationship_type":{"type":"string","title":"Relationship Type"},"effective_from":{"type":"string","title":"Effective From"},"effective_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Effective To"},"status":{"type":"string","title":"Status"}},"type":"object","required":["supervisor_license_credential_id","supervisor_license_number","affiliate_role","relationship_type","effective_from","status"],"title":"AffiliationHistoryItem"},"AffiliationHistoryResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/AffiliationHistoryItem"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"AffiliationHistoryResponse"},"BatchVerifyItem":{"properties":{"state":{"type":"string","maxLength":2,"minLength":2,"title":"State"},"license_number":{"type":"string","maxLength":128,"minLength":1,"title":"License Number"}},"type":"object","required":["state","license_number"],"title":"BatchVerifyItem"},"BatchVerifyRequest":{"properties":{"licenses":{"items":{"$ref":"#/components/schemas/BatchVerifyItem"},"type":"array","maxItems":100,"minItems":1,"title":"Licenses"}},"type":"object","required":["licenses"],"title":"BatchVerifyRequest"},"Body_admin_create_api_key_dashboard_admin_accounts__account_id__create_key_post":{"properties":{"label":{"type":"string","title":"Label","default":""}},"type":"object","title":"Body_admin_create_api_key_dashboard_admin_accounts__account_id__create_key_post"},"Body_admin_ingest_affiliation_file_api_v1_admin_ingestions_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"jurisdiction_code":{"type":"string","title":"Jurisdiction Code","default":"US-CA"},"format_code":{"type":"string","title":"Format Code"}},"type":"object","required":["file","format_code"],"title":"Body_admin_ingest_affiliation_file_api_v1_admin_ingestions_post"},"Body_admin_new_account_submit_dashboard_admin_accounts_new_post":{"properties":{"account_name":{"type":"string","title":"Account Name"},"email":{"type":"string","title":"Email"},"plan":{"type":"string","title":"Plan","default":"starter"},"monthly_request_limit":{"type":"string","title":"Monthly Request Limit","default":""},"password":{"type":"string","title":"Password","default":""},"create_api_key_flag":{"type":"string","title":"Create Api Key Flag","default":""},"api_key_label":{"type":"string","title":"Api Key Label","default":"initial"}},"type":"object","required":["account_name","email"],"title":"Body_admin_new_account_submit_dashboard_admin_accounts_new_post"},"Body_admin_rename_account_dashboard_admin_accounts__account_id__rename_post":{"properties":{"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"Body_admin_rename_account_dashboard_admin_accounts__account_id__rename_post"},"Body_admin_transfer_account_owner_dashboard_admin_accounts__account_id__transfer_owner_post":{"properties":{"owner_email":{"type":"string","title":"Owner Email"}},"type":"object","required":["owner_email"],"title":"Body_admin_transfer_account_owner_dashboard_admin_accounts__account_id__transfer_owner_post"},"Body_dashboard_billing_checkout_dashboard_billing_checkout_post":{"properties":{"plan":{"type":"string","title":"Plan"},"skip_trial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Skip Trial"}},"type":"object","required":["plan"],"title":"Body_dashboard_billing_checkout_dashboard_billing_checkout_post"},"Body_dashboard_billing_portal_dashboard_billing_portal_post":{"properties":{"flow":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Flow"}},"type":"object","title":"Body_dashboard_billing_portal_dashboard_billing_portal_post"},"Body_dashboard_create_api_key_dashboard_api_keys_create_post":{"properties":{"label":{"type":"string","title":"Label","default":""}},"type":"object","title":"Body_dashboard_create_api_key_dashboard_api_keys_create_post"},"Body_forgot_password_submit_dashboard_forgot_password_post":{"properties":{"email":{"type":"string","title":"Email"}},"type":"object","required":["email"],"title":"Body_forgot_password_submit_dashboard_forgot_password_post"},"Body_login_submit_dashboard_login_post":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"Body_login_submit_dashboard_login_post"},"Body_reset_password_submit_dashboard_reset_password_post":{"properties":{"token":{"type":"string","title":"Token"},"password":{"type":"string","title":"Password"},"confirm_password":{"type":"string","title":"Confirm Password"}},"type":"object","required":["token","password","confirm_password"],"title":"Body_reset_password_submit_dashboard_reset_password_post"},"Body_signup_submit_dashboard_signup_post":{"properties":{"account_name":{"type":"string","title":"Account Name"},"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"},"invite_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Invite Code"},"accept_terms":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accept Terms"},"marketing_plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Marketing Plan"},"cf-turnstile-response":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cf-Turnstile-Response"}},"type":"object","required":["account_name","email","password"],"title":"Body_signup_submit_dashboard_signup_post"},"Body_terms_acceptance_submit_dashboard_terms_accept_post":{"properties":{"accept_terms":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accept Terms"},"next_path":{"type":"string","title":"Next Path","default":"/dashboard/"}},"type":"object","title":"Body_terms_acceptance_submit_dashboard_terms_accept_post"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"PaginationMeta":{"properties":{"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"per_page":{"type":"integer","title":"Per Page"}},"type":"object","required":["total","page","per_page"],"title":"PaginationMeta"},"SupervisorItem":{"properties":{"license_credential_id":{"type":"string","title":"License Credential Id"},"license_number":{"type":"string","title":"License Number"},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"license_class":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License Class"},"affiliate_role":{"type":"string","title":"Affiliate Role"},"relationship_type":{"type":"string","title":"Relationship Type"},"effective_from":{"type":"string","title":"Effective From"},"effective_to":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Effective To"}},"type":"object","required":["license_credential_id","license_number","affiliate_role","relationship_type","effective_from"],"title":"SupervisorItem"},"SupervisorResponse":{"properties":{"data":{"$ref":"#/components/schemas/SupervisorItem"}},"type":"object","required":["data"],"title":"SupervisorResponse"},"SupervisorsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SupervisorItem"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"SupervisorsResponse"},"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":{"ApiKeyBearer":{"type":"http","scheme":"bearer","description":"Dashboard API key. Example header: Authorization: Bearer rel_…"}}}}