{"openapi":"3.1.0","info":{"title":"ANVO Call Analysis API","description":"Customer API reference, generated from the running service. Send an API key in `X-API-Key`, or a dashboard session token in `Authorization: Bearer <token>`. Use GET `/api/v1/me` to find your client_id; client paths must belong to that account. Read-only API keys cannot call mutating REST endpoints. Billing-settings updates require a tenant-admin session. Internal administration, scheduler, and authentication-management routes are excluded. See https://anvo.ai/docs/api for the integration guide and MCP setup.","version":"0.1.0"},"paths":{"/api/v1/clients/{client_id}":{"get":{"tags":["clients"],"summary":"Get Client","description":"Get a client by ID.","operationId":"get_client_api_v1_clients__client_id__get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/budget":{"get":{"tags":["clients"],"summary":"Get Client Budget","description":"Get monthly budget status for a client.","operationId":"get_client_budget_api_v1_clients__client_id__budget_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/usage-history":{"get":{"tags":["clients"],"summary":"Get Client Usage History","description":"Historical calls, minutes, and derived spend for a client.","operationId":"get_client_usage_history_api_v1_clients__client_id__usage_history_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"granularity","in":"query","required":false,"schema":{"type":"string","pattern":"^(day|month)$","default":"day","title":"Granularity"}},{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"default":30,"title":"Window Days"}},{"name":"window_months","in":"query","required":false,"schema":{"type":"integer","maximum":24,"minimum":1,"default":12,"title":"Window Months"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/billing-settings":{"patch":{"tags":["clients"],"summary":"Update Billing Settings","description":"Update a tenant's own monthly spend limit.\n\nTenant-scoped counterpart to the admin-only PATCH /{client_id}: reachable by a\nsession confined to this client (via require_client_access on the router) but\nrestricted to tenant admins, and it can touch only the spend limit. Ops admins\n(internal secret) pass through as well.","operationId":"update_billing_settings_api_v1_clients__client_id__billing_settings_patch","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingSettingsUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/users":{"get":{"tags":["clients"],"summary":"List Users","description":"List all users for a client.","operationId":"list_users_api_v1_clients__client_id__users_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"post":{"tags":["clients"],"summary":"Invite User","description":"Invite a new user to a client.\n\nCreates the user and generates a magic link for them to log in.\nIn production, this would send an email with the magic link.","operationId":"invite_user_api_v1_clients__client_id__users_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInvite"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/users/{user_id}":{"delete":{"tags":["clients"],"summary":"Remove User","description":"Remove a user from a client.","operationId":"remove_user_api_v1_clients__client_id__users__user_id__delete","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"patch":{"tags":["clients"],"summary":"Update User","description":"Update a user's settings (e.g. data_scope, is_admin).","operationId":"update_user_api_v1_clients__client_id__users__user_id__patch","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/data-sources":{"get":{"tags":["clients"],"summary":"List Data Sources","description":"List all data sources for a client.","operationId":"list_data_sources_api_v1_clients__client_id__data_sources_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DataSourceResponse"},"title":"Response List Data Sources Api V1 Clients  Client Id  Data Sources Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"post":{"tags":["clients"],"summary":"Create Data Source","description":"Create a new data source for a client.","operationId":"create_data_source_api_v1_clients__client_id__data_sources_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataSourceCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataSourceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/data-sources/{data_source_id}":{"get":{"tags":["clients"],"summary":"Get Data Source By Id","description":"Get a specific data source.","operationId":"get_data_source_by_id_api_v1_clients__client_id__data_sources__data_source_id__get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"data_source_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Data Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataSourceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"patch":{"tags":["clients"],"summary":"Update Data Source By Id","description":"Partially update a data source.","operationId":"update_data_source_by_id_api_v1_clients__client_id__data_sources__data_source_id__patch","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"data_source_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Data Source Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataSourceUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataSourceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"delete":{"tags":["clients"],"summary":"Delete Data Source","description":"Delete a data source (cascades to its synced files).","operationId":"delete_data_source_api_v1_clients__client_id__data_sources__data_source_id__delete","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"data_source_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Data Source Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/data-sources/{data_source_id}/test":{"post":{"tags":["clients"],"summary":"Test Data Source By Id","description":"Test a data source's connection.","operationId":"test_data_source_by_id_api_v1_clients__client_id__data_sources__data_source_id__test_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"data_source_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Data Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionTestResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/data-sources/{data_source_id}/sync":{"post":{"tags":["clients"],"summary":"Sync Data Source By Id","description":"Sync files from a specific data source.","operationId":"sync_data_source_by_id_api_v1_clients__client_id__data_sources__data_source_id__sync_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"data_source_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Data Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/data-sources/{data_source_id}/custom-fields":{"get":{"tags":["clients"],"summary":"List Data Source Custom Fields","description":"List a Close source's lead custom field definitions for the tracking picker.\n\nClose orgs can have hundreds of fields, so callers should pass ``q`` to\nsearch by name. Returns ``{\"fields\": [{\"id\", \"name\", \"type\"}]}``.","operationId":"list_data_source_custom_fields_api_v1_clients__client_id__data_sources__data_source_id__custom_fields_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"data_source_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Data Source Id"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Case-insensitive name filter","title":"Q"},"description":"Case-insensitive name filter"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/data-source":{"get":{"tags":["clients"],"summary":"Get Primary Data Source","description":"[Legacy] Get the primary data source for a client.","operationId":"get_primary_data_source_api_v1_clients__client_id__data_source_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataSourceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"put":{"tags":["clients"],"summary":"Upsert Primary Data Source","description":"[Legacy] Create-or-update the primary data source. Updates the oldest\nsource if one exists; otherwise creates a new one.","operationId":"upsert_primary_data_source_api_v1_clients__client_id__data_source_put","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataSourceCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataSourceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"patch":{"tags":["clients"],"summary":"Update Primary Data Source","description":"[Legacy] Partially update the primary data source.","operationId":"update_primary_data_source_api_v1_clients__client_id__data_source_patch","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataSourceUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataSourceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/data-source/test":{"post":{"tags":["clients"],"summary":"Test Primary Data Source","description":"[Legacy] Test the primary data source's connection.","operationId":"test_primary_data_source_api_v1_clients__client_id__data_source_test_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionTestResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/data-source/sync":{"post":{"tags":["clients"],"summary":"Sync Primary Data Source","description":"[Legacy] Sync the primary data source.","operationId":"sync_primary_data_source_api_v1_clients__client_id__data_source_sync_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/schemas":{"get":{"tags":["clients"],"summary":"List Schema Configs","description":"List all schemas configured for a client.","operationId":"list_schema_configs_api_v1_clients__client_id__schemas_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientSchemaConfigListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"post":{"tags":["clients"],"summary":"Add Schema To Client","description":"Add a schema to a client's configuration.","operationId":"add_schema_to_client_api_v1_clients__client_id__schemas_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientSchemaConfigCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientSchemaConfigResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/schemas/{schema_id}/details":{"get":{"tags":["clients"],"summary":"Get Schema Details","description":"Get full details of a schema assigned to a client.","operationId":"get_schema_details_api_v1_clients__client_id__schemas__schema_id__details_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"schema_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schema Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/schemas/{schema_id}/violation-fields":{"get":{"tags":["clients"],"summary":"Get Schema Violation Fields","description":"Get filterable compliance fields from a schema's schema_fields.","operationId":"get_schema_violation_fields_api_v1_clients__client_id__schemas__schema_id__violation_fields_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"schema_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schema Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/schemas/{schema_id}/violation-summary":{"get":{"tags":["clients"],"summary":"Get Violation Summary","description":"Get per-field violation counts for a schema across results.","operationId":"get_violation_summary_api_v1_clients__client_id__schemas__schema_id__violation_summary_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"schema_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schema Id"}},{"name":"min_length_ms","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Length Ms"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"data_source_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Data Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/schemas/{schema_id}/violation-report":{"get":{"tags":["clients"],"summary":"Get Violation Report","description":"Get violation report grouped by a metadata field.","operationId":"get_violation_report_api_v1_clients__client_id__schemas__schema_id__violation_report_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"schema_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schema Id"}},{"name":"group_by","in":"query","required":true,"schema":{"type":"string","title":"Group By"}},{"name":"min_length_ms","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Length Ms"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}},{"name":"data_source_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Data Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/schemas/{schema_id}/fields":{"patch":{"tags":["clients"],"summary":"Update Schema Fields","description":"Update schema fields for a client's custom schema.","operationId":"update_schema_fields_api_v1_clients__client_id__schemas__schema_id__fields_patch","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"schema_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schema Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchemaFieldsUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/schemas/{config_id}":{"patch":{"tags":["clients"],"summary":"Update Schema Config","description":"Update a schema configuration.","operationId":"update_schema_config_api_v1_clients__client_id__schemas__config_id__patch","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"config_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Config Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientSchemaConfigUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientSchemaConfigResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"delete":{"tags":["clients"],"summary":"Remove Schema From Client","description":"Remove a schema from a client's configuration.","operationId":"remove_schema_from_client_api_v1_clients__client_id__schemas__config_id__delete","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"config_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Config Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/schema-repository":{"get":{"tags":["clients"],"summary":"Browse Schema Repository","description":"Browse all active schemas with is_enabled flag per client.","operationId":"browse_schema_repository_api_v1_clients__client_id__schema_repository_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"schema_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Type"}},{"name":"tag","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Tag filters in key:value format","title":"Tag"},"description":"Tag filters in key:value format"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchemaRepositoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/schemas/create-custom":{"post":{"tags":["clients"],"summary":"Create Custom Schema","description":"Create a custom schema and auto-assign it to the client.","operationId":"create_custom_schema_api_v1_clients__client_id__schemas_create_custom_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomSchemaCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/parser":{"get":{"tags":["clients"],"summary":"Get Parser","description":"Get the filename parser configuration for a client.","operationId":"get_parser_api_v1_clients__client_id__parser_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilenameParserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"put":{"tags":["clients"],"summary":"Upsert Parser","description":"Create or update the filename parser for a client.","operationId":"upsert_parser_api_v1_clients__client_id__parser_put","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilenameParserCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilenameParserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"patch":{"tags":["clients"],"summary":"Update Parser Display","description":"Update display settings for the filename parser (hidden_fields, filterable_fields, duration_field).","operationId":"update_parser_display_api_v1_clients__client_id__parser_patch","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilenameParserUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilenameParserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/parser/test":{"post":{"tags":["clients"],"summary":"Test Parser","description":"Test the parser with a sample filename.","operationId":"test_parser_api_v1_clients__client_id__parser_test_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseTestRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseTestResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/parser/apply":{"post":{"tags":["clients"],"summary":"Apply Parser To Files","description":"Apply the parser to all existing synced files (no S3 calls).","operationId":"apply_parser_to_files_api_v1_clients__client_id__parser_apply_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/destinations":{"get":{"tags":["clients"],"summary":"List Destinations","description":"List all output destinations for a client.","operationId":"list_destinations_api_v1_clients__client_id__destinations_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OutputDestinationListResponse"},"title":"Response List Destinations Api V1 Clients  Client Id  Destinations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"post":{"tags":["clients"],"summary":"Create Destination","description":"Create a new output destination.","operationId":"create_destination_api_v1_clients__client_id__destinations_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputDestinationCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputDestinationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/destinations/{dest_id}":{"get":{"tags":["clients"],"summary":"Get Destination","description":"Get an output destination by ID.","operationId":"get_destination_api_v1_clients__client_id__destinations__dest_id__get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"dest_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dest Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputDestinationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"patch":{"tags":["clients"],"summary":"Update Destination","description":"Update an output destination.","operationId":"update_destination_api_v1_clients__client_id__destinations__dest_id__patch","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"dest_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dest Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputDestinationUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputDestinationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"delete":{"tags":["clients"],"summary":"Delete Destination","description":"Delete an output destination.","operationId":"delete_destination_api_v1_clients__client_id__destinations__dest_id__delete","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"dest_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dest Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/destinations/{dest_id}/test":{"post":{"tags":["clients"],"summary":"Test Destination","description":"Test an output destination.","operationId":"test_destination_api_v1_clients__client_id__destinations__dest_id__test_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"dest_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dest Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DestinationTestResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/files":{"get":{"tags":["clients"],"summary":"List Files","description":"List synced files for a client with filtering and sorting on parsed metadata.","operationId":"list_files_api_v1_clients__client_id__files_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search term to filter filenames","title":"Search"},"description":"Search term to filter filenames"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Field to sort by (e.g., 'date', 'disposition', 'discovered_at')","title":"Sort By"},"description":"Field to sort by (e.g., 'date', 'disposition', 'discovered_at')"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort order: 'asc' or 'desc'","default":"desc","title":"Sort Order"},"description":"Sort order: 'asc' or 'desc'"},{"name":"min_length_ms","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Minimum duration in milliseconds","title":"Min Length Ms"},"description":"Minimum duration in milliseconds"},{"name":"max_length_ms","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Maximum duration in milliseconds","title":"Max Length Ms"},"description":"Maximum duration in milliseconds"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/files/filter-options":{"get":{"tags":["clients"],"summary":"Get Filter Options","description":"Get distinct values for a parsed metadata field (for filter dropdowns).\n\nBy default only returns values from files that have analysis results (matching\nthe all-results view). Supports faceted filtering via filter_{key}=val1|||val2\nquery params (exclude-self pattern).","operationId":"get_filter_options_api_v1_clients__client_id__files_filter_options_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"field","in":"query","required":true,"schema":{"type":"string","description":"The parsed metadata field to get distinct values for","title":"Field"},"description":"The parsed metadata field to get distinct values for"},{"name":"source","in":"query","required":false,"schema":{"type":"string","description":"'results' = only files with analysis results, 'all' = all synced files","default":"results","title":"Source"},"description":"'results' = only files with analysis results, 'all' = all synced files"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/files/filter-options-batch":{"get":{"tags":["clients"],"summary":"Get Filter Options Batch","description":"Distinct values for MANY filter fields in a SINGLE table scan.\n\nThe per-field endpoint above does one full scan per dropdown, so a page with\nN filters fired N scans (5-7s). This computes one `array_agg(DISTINCT ...)`\nper field over a single scan, preserving the exclude-self faceting behavior.","operationId":"get_filter_options_batch_api_v1_clients__client_id__files_filter_options_batch_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"fields","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated parsed_metadata fields","title":"Fields"},"description":"Comma-separated parsed_metadata fields"},{"name":"source","in":"query","required":false,"schema":{"type":"string","description":"'results' or 'all'","default":"results","title":"Source"},"description":"'results' or 'all'"},{"name":"data_source_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Data Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/files/process":{"post":{"tags":["clients"],"summary":"Process Files","description":"Manually trigger processing for selected files.","operationId":"process_files_api_v1_clients__client_id__files_process_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessFilesRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessFilesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/files/reset":{"post":{"tags":["clients"],"summary":"Reset Files","description":"Reset files back to pending status for reprocessing.","operationId":"reset_files_api_v1_clients__client_id__files_reset_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetFilesRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetFilesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/files/{file_id}/audio":{"get":{"tags":["clients"],"summary":"Get Audio Url","description":"Get a presigned URL for audio playback.","operationId":"get_audio_url_api_v1_clients__client_id__files__file_id__audio_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"file_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioUrlResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/files/{file_id}/audio/stream":{"get":{"tags":["clients"],"summary":"Stream Audio","description":"Stream audio file, transcoding to PCM WAV for browser compatibility.","operationId":"stream_audio_api_v1_clients__client_id__files__file_id__audio_stream_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"file_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"File Id"}},{"name":"download","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Download"}},{"name":"Range","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Range"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/files/{file_id}/audio/clips":{"post":{"tags":["clients"],"summary":"Export Audio Clips","description":"Extract multiple audio clips from a file and return as a zip.","operationId":"export_audio_clips_api_v1_clients__client_id__files__file_id__audio_clips_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"file_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"File Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClipExportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/files/upload-url":{"post":{"tags":["clients"],"summary":"Get Upload Url","description":"Generate a presigned GCS URL for direct file upload (bypasses API for large files).","operationId":"get_upload_url_api_v1_clients__client_id__files_upload_url_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadUrlRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadUrlResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/files/register-upload":{"post":{"tags":["clients"],"summary":"Register Upload","description":"Register a directly uploaded file as a SyncedFile for analysis.","operationId":"register_upload_api_v1_clients__client_id__files_register_upload_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUploadRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncedFileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/schedules":{"get":{"tags":["clients"],"summary":"List Schedules","description":"List all scheduled analyses for a client.","operationId":"list_schedules_api_v1_clients__client_id__schedules_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ScheduledAnalysisResponse"},"title":"Response List Schedules Api V1 Clients  Client Id  Schedules Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"post":{"tags":["clients"],"summary":"Create Schedule","description":"Create a new scheduled analysis.","operationId":"create_schedule_api_v1_clients__client_id__schedules_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduledAnalysisCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduledAnalysisResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/schedules/{schedule_id}":{"get":{"tags":["clients"],"summary":"Get Schedule","description":"Get a scheduled analysis by ID.","operationId":"get_schedule_api_v1_clients__client_id__schedules__schedule_id__get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduledAnalysisResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"patch":{"tags":["clients"],"summary":"Update Schedule","description":"Update a scheduled analysis.","operationId":"update_schedule_api_v1_clients__client_id__schedules__schedule_id__patch","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduledAnalysisUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduledAnalysisResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"delete":{"tags":["clients"],"summary":"Delete Schedule","description":"Delete a scheduled analysis.","operationId":"delete_schedule_api_v1_clients__client_id__schedules__schedule_id__delete","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/schedules/{schedule_id}/run-now":{"post":{"tags":["clients"],"summary":"Run Schedule Now","description":"Manually trigger a scheduled analysis.","operationId":"run_schedule_now_api_v1_clients__client_id__schedules__schedule_id__run_now_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunNowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/runs/run-now":{"post":{"tags":["clients"],"summary":"Ad Hoc Run Now","description":"Sync yesterday + filter + create analysis run (ad-hoc).","operationId":"ad_hoc_run_now_api_v1_clients__client_id__runs_run_now_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunNowRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunNowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/files/unanalyzed-count":{"get":{"tags":["clients"],"summary":"Get Unanalyzed Count","description":"Get count of unanalyzed (discovered) files matching filters.\n\nWhen data_source_id is set, scoped to that source so the file-browser\nbadge matches the dropdown selection.","operationId":"get_unanalyzed_count_api_v1_clients__client_id__files_unanalyzed_count_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"min_length_ms","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Length Ms"}},{"name":"data_source_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Data Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/dashboard-stats":{"get":{"tags":["clients"],"summary":"Get Dashboard Stats","description":"Get overview stats for the client home dashboard.","operationId":"get_dashboard_stats_api_v1_clients__client_id__dashboard_stats_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/runs":{"get":{"tags":["clients"],"summary":"List Runs","description":"List analysis runs for a client.","operationId":"list_runs_api_v1_clients__client_id__runs_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_AnalysisRunListResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"post":{"tags":["clients"],"summary":"Create Run","description":"Create and start a new analysis run.","operationId":"create_run_api_v1_clients__client_id__runs_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalysisRunCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalysisRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/runs/active":{"get":{"tags":["clients"],"summary":"List Active Runs","description":"Lean payload of in-flight runs for the active-runs indicator.","operationId":"list_active_runs_api_v1_clients__client_id__runs_active_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ActiveRunResponse"},"title":"Response List Active Runs Api V1 Clients  Client Id  Runs Active Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/runs/all-results":{"get":{"tags":["clients"],"summary":"Get All Results","description":"Get all items with results across all runs for a client in a single query.","operationId":"get_all_results_api_v1_clients__client_id__runs_all_results_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"min_length_ms","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Length Ms"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"schema_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Schema Id"}},{"name":"violation_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Violation Filter"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"desc","title":"Sort Order"}},{"name":"data_source_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Data Source Id"}},{"name":"include_transcript","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Transcript"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AggregatedResultsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/runs/all-results/export":{"get":{"tags":["clients"],"summary":"Export All Results","description":"Export all matching results as CSV.","operationId":"export_all_results_api_v1_clients__client_id__runs_all_results_export_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"min_length_ms","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Length Ms"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"schema_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Schema Id"}},{"name":"violation_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Violation Filter"}},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date To"}},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort By"}},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"desc","title":"Sort Order"}},{"name":"data_source_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Data Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/runs/{run_id}":{"get":{"tags":["clients"],"summary":"Get Run","description":"Get an analysis run by ID.","operationId":"get_run_api_v1_clients__client_id__runs__run_id__get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalysisRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/runs/{run_id}/progress":{"get":{"tags":["clients"],"summary":"Get Run Progress","description":"Get progress for an analysis run.","operationId":"get_run_progress_api_v1_clients__client_id__runs__run_id__progress_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalysisRunProgress"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/runs/{run_id}/cancel":{"post":{"tags":["clients"],"summary":"Cancel Run","description":"Cancel an analysis run.","operationId":"cancel_run_api_v1_clients__client_id__runs__run_id__cancel_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/runs/{run_id}/items":{"get":{"tags":["clients"],"summary":"Get Run Items","description":"Get items for an analysis run.","operationId":"get_run_items_api_v1_clients__client_id__runs__run_id__items_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_AnalysisRunItemResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/runs/{run_id}/items/{item_id}/redeliver":{"post":{"tags":["clients"],"summary":"Redeliver Item","description":"Re-deliver results for an item.","operationId":"redeliver_item_api_v1_clients__client_id__runs__run_id__items__item_id__redeliver_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"item_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Item Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeliverRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeliverResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/runs/{run_id}/items/{item_id}/results":{"get":{"tags":["clients"],"summary":"Get Item Results","description":"Get analysis results for a specific run item.","operationId":"get_item_results_api_v1_clients__client_id__runs__run_id__items__item_id__results_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"item_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Item Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalysisRunItemResultsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/runs/{run_id}/items/{item_id}/notes":{"patch":{"tags":["clients"],"summary":"Update Item Notes","description":"Update notes on a specific run item.","operationId":"update_item_notes_api_v1_clients__client_id__runs__run_id__items__item_id__notes_patch","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"item_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Item Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalysisRunItemNotesUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/runs/{run_id}/items/{item_id}/test-webhook":{"post":{"tags":["clients"],"summary":"Test Webhook Delivery","description":"Send item results to a custom webhook URL for testing.\n\nUses the same payload format as automated webhook delivery.","operationId":"test_webhook_delivery_api_v1_clients__client_id__runs__run_id__items__item_id__test_webhook_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"item_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Item Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestWebhookRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestWebhookResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/runs/{run_id}/retry":{"post":{"tags":["clients"],"summary":"Retry Failed Items","description":"Retry only failed items in a run.","operationId":"retry_failed_items_api_v1_clients__client_id__runs__run_id__retry_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/runs/{run_id}/retry-all":{"post":{"tags":["clients"],"summary":"Retry All Items","description":"Retry all items in a run.","operationId":"retry_all_items_api_v1_clients__client_id__runs__run_id__retry_all_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/reports/executive-summary":{"get":{"tags":["clients"],"summary":"Get Executive Summary","description":"Generate an executive summary report for a client.\n\nV2 Report (use_v2=True, default):\n- Statistical analysis with significance testing\n- Correlation analysis between metrics\n- Infraction impact analysis with effect sizes\n- Risk stratification with tier characteristics\n- Coach performance with percentiles\n\nV1 Report (use_v2=False):\n- Basic aggregation metrics (legacy)\n\nBoth versions include:\n- Compliance metrics across all dimensions\n- Risk analysis and refund risk distribution\n- Coach and campaign performance\n- Sentiment and NPS scores\n- Actionable insights and recommendations","operationId":"get_executive_summary_api_v1_clients__client_id__reports_executive_summary_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter results from this date","title":"Start Date"},"description":"Filter results from this date"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter results until this date","title":"End Date"},"description":"Filter results until this date"},{"name":"avg_refund_value","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Average refund value for exposure calculation","title":"Avg Refund Value"},"description":"Average refund value for exposure calculation"},{"name":"min_calls_for_coach","in":"query","required":false,"schema":{"type":"integer","description":"Minimum calls for coach to be included in performance analysis","default":10,"title":"Min Calls For Coach"},"description":"Minimum calls for coach to be included in performance analysis"},{"name":"use_v2","in":"query","required":false,"schema":{"type":"boolean","description":"Use v2 statistical analytics (recommended)","default":true,"title":"Use V2"},"description":"Use v2 statistical analytics (recommended)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/reports/send-email":{"post":{"tags":["clients"],"summary":"Send Report Email","description":"Send an analytics report via email using Resend.\n\nThe report HTML should be generated client-side and passed in the request body.\nThis allows for flexibility in report formatting while keeping email sending server-side.","operationId":"send_report_email_api_v1_clients__client_id__reports_send_email_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendReportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/views":{"get":{"tags":["clients"],"summary":"List Views","description":"List all saved views for a client.","operationId":"list_views_api_v1_clients__client_id__views_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SavedViewResponse"},"title":"Response List Views Api V1 Clients  Client Id  Views Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"post":{"tags":["clients"],"summary":"Create View","description":"Create a new saved view.","operationId":"create_view_api_v1_clients__client_id__views_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedViewCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedViewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/views/{view_id}":{"get":{"tags":["clients"],"summary":"Get Saved View","description":"Get one saved view, scoped to the client in the request path.","operationId":"get_saved_view_api_v1_clients__client_id__views__view_id__get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"view_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"View Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedViewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"patch":{"tags":["clients"],"summary":"Update View","description":"Update a saved view.","operationId":"update_view_api_v1_clients__client_id__views__view_id__patch","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"view_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"View Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedViewUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedViewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"delete":{"tags":["clients"],"summary":"Delete View","description":"Delete a saved view.","operationId":"delete_view_api_v1_clients__client_id__views__view_id__delete","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"view_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"View Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/analytics/compliance-trends":{"get":{"tags":["clients"],"summary":"Get Compliance Trends","description":"Get weekly compliance trends — lightweight endpoint for AI assistant.","operationId":"get_compliance_trends_api_v1_clients__client_id__analytics_compliance_trends_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/analytics/coach-performance":{"get":{"tags":["clients"],"summary":"Get Coach Performance","description":"Get coach/agent performance rankings — lightweight endpoint for AI assistant.","operationId":"get_coach_performance_api_v1_clients__client_id__analytics_coach_performance_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date"}},{"name":"min_calls_for_coach","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Min Calls For Coach"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/me":{"get":{"tags":["me"],"summary":"Get Me","description":"Identify the tenant this credential belongs to.","operationId":"get_me_api_v1_me_get","parameters":[],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/me/results":{"get":{"tags":["me"],"summary":"Get My Results","description":"List this tenant's analysis results across all runs, filtered and paged.\n\nSupports the same dynamic metadata filters as the dashboard: pass\n``filter_<field>=a|||b`` to filter on parsed call metadata (e.g. coach).\nLists items from completed or processing runs, including items without\nresults yet. Reanalysis can produce multiple items for one recording.\nThe response's has_processing flag is account-wide, independent of filters.","operationId":"get_my_results_api_v1_me_results_get","parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Case-insensitive filename search only.","title":"Search"},"description":"Case-insensitive filename search only."},{"name":"schema_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Select items with a result for this schema; other schema results on matching items are still included.","title":"Schema Id"},"description":"Select items with a result for this schema; other schema results on matching items are still included."},{"name":"violation_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object mapping criterion keys to pass, fail, or na; for example {\"greeting\":\"fail\"}.","title":"Violation Filter"},"description":"JSON object mapping criterion keys to pass, fail, or na; for example {\"greeting\":\"fail\"}."},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Inclusive ISO date/datetime lower bound on analysis-item creation time, not recording time.","title":"Date From"},"description":"Inclusive ISO date/datetime lower bound on analysis-item creation time, not recording time."},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Inclusive ISO date/datetime upper bound on analysis-item creation time. Midnight is expanded to 23:59:59.","title":"Date To"},"description":"Inclusive ISO date/datetime upper bound on analysis-item creation time. Midnight is expanded to 23:59:59."},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"date (default), filename, violations, score, or a parsed-metadata key. Score/violation sorting considers at most 5,000 matching items.","title":"Sort By"},"description":"date (default), filename, violations, score, or a parsed-metadata key. Score/violation sorting considers at most 5,000 matching items."},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"asc or desc; other values fall back to desc.","default":"desc","title":"Sort Order"},"description":"asc or desc; other values fall back to desc."},{"name":"data_source_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Data Source Id"}},{"name":"min_length_ms","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Minimum parsed length_ms metadata value, in milliseconds.","title":"Min Length Ms"},"description":"Minimum parsed length_ms metadata value, in milliseconds."},{"name":"include_transcript","in":"query","required":false,"schema":{"type":"boolean","description":"Include transcript text. Otherwise each result's transcript is null.","default":false,"title":"Include Transcript"},"description":"Include transcript text. Otherwise each result's transcript is null."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AggregatedResultsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/me/results/{item_id}":{"get":{"tags":["me"],"summary":"Get My Result","description":"Full detail for one result item, including its transcript.","operationId":"get_my_result_api_v1_me_results__item_id__get","parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Item Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalysisRunItemResultsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}},"/api/v1/clients/{client_id}/call-analytics-config":{"get":{"tags":["call-analytics-config"],"summary":"Get Call Analytics Config","operationId":"get_call_analytics_config_api_v1_clients__client_id__call_analytics_config_get","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallAnalyticsConfigResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]},"put":{"tags":["call-analytics-config"],"summary":"Put Call Analytics Config","operationId":"put_call_analytics_config_api_v1_clients__client_id__call_analytics_config_put","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Client Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallAnalyticsConfigUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallAnalyticsConfigResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"401":{"description":"Missing or invalid credentials."},"403":{"description":"Tenant, role, or read-only key restriction."}},"security":[{"ApiKey":[]},{"SessionToken":[]}]}}},"components":{"schemas":{"AccountResponse":{"properties":{"client_id":{"type":"string","format":"uuid","title":"Client Id"}},"type":"object","required":["client_id"],"title":"AccountResponse"},"ActiveRunResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"status":{"type":"string","title":"Status"},"total_recordings":{"type":"integer","title":"Total Recordings"},"completed_count":{"type":"integer","title":"Completed Count"},"failed_count":{"type":"integer","title":"Failed Count"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","status","total_recordings","completed_count","failed_count","started_at","created_at"],"title":"ActiveRunResponse","description":"Compact in-flight run payload for the active-runs indicator.\n\n`completed_count` and `failed_count` are computed from item rows so the\nindicator stays correct even if the run-level counters drift."},"AggregatedResultsResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AggregatedRunItemResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"offset":{"type":"integer","title":"Offset"},"limit":{"type":"integer","title":"Limit"},"has_more":{"type":"boolean","title":"Has More"},"has_processing":{"type":"boolean","title":"Has Processing"}},"type":"object","required":["items","total","offset","limit","has_more","has_processing"],"title":"AggregatedResultsResponse","description":"Aggregated results across all runs for a client."},"AggregatedRunItemResponse":{"properties":{"item_id":{"type":"string","format":"uuid","title":"Item Id"},"synced_file_id":{"type":"string","format":"uuid","title":"Synced File Id"},"filename":{"type":"string","title":"Filename"},"status":{"type":"string","title":"Status"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"run_id":{"type":"string","format":"uuid","title":"Run Id"},"run_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Name"},"run_created_at":{"type":"string","format":"date-time","title":"Run Created At"},"run_status":{"type":"string","title":"Run Status"},"parsed_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Parsed Metadata"},"results":{"items":{"$ref":"#/components/schemas/AnalysisResultItem"},"type":"array","title":"Results","default":[]},"violation_count":{"type":"integer","title":"Violation Count","default":0}},"type":"object","required":["item_id","synced_file_id","filename","status","run_id","run_created_at","run_status"],"title":"AggregatedRunItemResponse","description":"Single item with results and run metadata for aggregated endpoint."},"AnalysisResultItem":{"properties":{"schema_id":{"type":"string","format":"uuid","title":"Schema Id"},"schema_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Name"},"schema_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Slug"},"raw_output":{"additionalProperties":true,"type":"object","title":"Raw Output"},"transcript":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transcript"},"processing_time_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Processing Time Ms"},"model_used":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Used"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"exposure":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Exposure"}},"type":"object","required":["schema_id","schema_name","schema_slug","raw_output","processing_time_ms","model_used","created_at"],"title":"AnalysisResultItem","description":"Individual analysis result for a schema."},"AnalysisRunCreate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"file_ids":{"items":{"type":"string","format":"uuid"},"type":"array","minItems":1,"title":"File Ids","description":"List of synced file IDs to analyze"},"schema_ids":{"items":{"type":"string","format":"uuid"},"type":"array","minItems":1,"title":"Schema Ids","description":"List of analysis schema IDs to run"},"destination_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Destination Ids","description":"List of destination IDs to deliver results to","default":[]},"test_mode":{"type":"boolean","title":"Test Mode","description":"Skip billing and destination delivery (results still visible in runs)","default":false},"data_source_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Data Source Id","description":"Restrict the run to one data source (and tag the run for filtering). NULL = unscoped."}},"type":"object","required":["file_ids","schema_ids"],"title":"AnalysisRunCreate","description":"Request body for creating an analysis run.","example":{"destination_ids":["550e8400-e29b-41d4-a716-446655440002"],"file_ids":["550e8400-e29b-41d4-a716-446655440000"],"name":"January Compliance Audit","schema_ids":["550e8400-e29b-41d4-a716-446655440001"],"test_mode":false}},"AnalysisRunItemNotesUpdate":{"properties":{"notes":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}],"title":"Notes"}},"type":"object","title":"AnalysisRunItemNotesUpdate","description":"Update notes on an analysis run item."},"AnalysisRunItemResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"run_id":{"type":"string","format":"uuid","title":"Run Id"},"synced_file_id":{"type":"string","format":"uuid","title":"Synced File Id"},"filename":{"type":"string","title":"Filename"},"status":{"type":"string","title":"Status"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"job_ids":{"items":{"type":"string"},"type":"array","title":"Job Ids"},"delivery_status":{"type":"string","title":"Delivery Status"},"delivery_errors":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Delivery Errors"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["id","run_id","synced_file_id","filename","status","error_message","job_ids","delivery_status","delivery_errors","created_at","completed_at"],"title":"AnalysisRunItemResponse","description":"Individual item in an analysis run."},"AnalysisRunItemResultsResponse":{"properties":{"item_id":{"type":"string","format":"uuid","title":"Item Id"},"synced_file_id":{"type":"string","format":"uuid","title":"Synced File Id"},"filename":{"type":"string","title":"Filename"},"status":{"type":"string","title":"Status"},"results":{"items":{"$ref":"#/components/schemas/AnalysisResultItem"},"type":"array","title":"Results","default":[]},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["item_id","synced_file_id","filename","status","error_message"],"title":"AnalysisRunItemResultsResponse","description":"Results for a specific run item."},"AnalysisRunListResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"schema_ids":{"items":{"type":"string"},"type":"array","title":"Schema Ids"},"destination_ids":{"items":{"type":"string"},"type":"array","title":"Destination Ids"},"test_mode":{"type":"boolean","title":"Test Mode"},"triggered_by_user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Triggered By User Id"},"status":{"type":"string","title":"Status"},"total_recordings":{"type":"integer","title":"Total Recordings"},"completed_recordings":{"type":"integer","title":"Completed Recordings"},"failed_recordings":{"type":"integer","title":"Failed Recordings"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["id","name","schema_ids","destination_ids","test_mode","status","total_recordings","completed_recordings","failed_recordings","created_at","started_at","completed_at"],"title":"AnalysisRunListResponse","description":"Lightweight analysis run response for lists."},"AnalysisRunProgress":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"status":{"type":"string","title":"Status"},"total_recordings":{"type":"integer","title":"Total Recordings"},"completed_recordings":{"type":"integer","title":"Completed Recordings"},"failed_recordings":{"type":"integer","title":"Failed Recordings"},"progress_percent":{"type":"number","title":"Progress Percent"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"estimated_completion":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Estimated Completion"}},"type":"object","required":["id","status","total_recordings","completed_recordings","failed_recordings","progress_percent","started_at"],"title":"AnalysisRunProgress","description":"Analysis run progress summary."},"AnalysisRunResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"data_source_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Data Source Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"schema_ids":{"items":{"type":"string"},"type":"array","title":"Schema Ids"},"destination_ids":{"items":{"type":"string"},"type":"array","title":"Destination Ids"},"filter_criteria":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filter Criteria"},"test_mode":{"type":"boolean","title":"Test Mode"},"triggered_by_user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Triggered By User Id"},"status":{"type":"string","title":"Status"},"total_recordings":{"type":"integer","title":"Total Recordings"},"completed_recordings":{"type":"integer","title":"Completed Recordings"},"failed_recordings":{"type":"integer","title":"Failed Recordings"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["id","client_id","name","schema_ids","destination_ids","filter_criteria","test_mode","status","total_recordings","completed_recordings","failed_recordings","created_at","started_at","completed_at"],"title":"AnalysisRunResponse","description":"Full analysis run response."},"AudioUrlResponse":{"properties":{"url":{"type":"string","title":"Url"},"expires_in_seconds":{"type":"integer","title":"Expires In Seconds","default":3600},"filename":{"type":"string","title":"Filename"},"mime_type":{"type":"string","title":"Mime Type","default":"audio/mpeg"}},"type":"object","required":["url","filename"],"title":"AudioUrlResponse","description":"Response containing presigned URL for audio playback."},"BillingSettingsUpdate":{"properties":{"monthly_spend_limit_cents":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Monthly Spend Limit Cents"}},"type":"object","title":"BillingSettingsUpdate","description":"Tenant-editable billing settings. Deliberately narrow: a tenant admin may\nset their own spend cap but nothing else on the client (rate, tier, etc.)."},"CallAnalyticsConfigResponse":{"properties":{"timezone":{"type":"string","title":"Timezone","default":"UTC"},"occurred_at_fields":{"items":{"type":"string"},"type":"array","title":"Occurred At Fields"},"partner_fields":{"items":{"type":"string"},"type":"array","title":"Partner Fields"},"campaign_fields":{"items":{"type":"string"},"type":"array","title":"Campaign Fields"},"coach_fields":{"items":{"type":"string"},"type":"array","title":"Coach Fields"},"outcome_fields":{"items":{"type":"string"},"type":"array","title":"Outcome Fields"},"duration_fields":{"items":{"type":"string"},"type":"array","title":"Duration Fields"},"partner_aliases":{"additionalProperties":{"type":"string"},"type":"object","title":"Partner Aliases"},"coach_aliases":{"additionalProperties":{"type":"string"},"type":"object","title":"Coach Aliases"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["client_id"],"title":"CallAnalyticsConfigResponse"},"CallAnalyticsConfigUpdate":{"properties":{"timezone":{"type":"string","title":"Timezone","default":"UTC"},"occurred_at_fields":{"items":{"type":"string"},"type":"array","title":"Occurred At Fields"},"partner_fields":{"items":{"type":"string"},"type":"array","title":"Partner Fields"},"campaign_fields":{"items":{"type":"string"},"type":"array","title":"Campaign Fields"},"coach_fields":{"items":{"type":"string"},"type":"array","title":"Coach Fields"},"outcome_fields":{"items":{"type":"string"},"type":"array","title":"Outcome Fields"},"duration_fields":{"items":{"type":"string"},"type":"array","title":"Duration Fields"},"partner_aliases":{"additionalProperties":{"type":"string"},"type":"object","title":"Partner Aliases"},"coach_aliases":{"additionalProperties":{"type":"string"},"type":"object","title":"Coach Aliases"}},"type":"object","title":"CallAnalyticsConfigUpdate"},"ClientResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"is_active":{"type":"boolean","title":"Is Active"},"stripe_customer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Customer Id"},"monthly_spend_limit_cents":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Monthly Spend Limit Cents"},"rate_per_minute_cents":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rate Per Minute Cents"},"tier":{"type":"string","title":"Tier","default":"free"},"stripe_price_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe Price Id"},"free_tier_minutes_override":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Free Tier Minutes Override"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","slug","is_active","created_at","updated_at"],"title":"ClientResponse","description":"Full client response."},"ClientSchemaConfigCreate":{"properties":{"schema_id":{"type":"string","format":"uuid","title":"Schema Id"},"is_active":{"type":"boolean","title":"Is Active","default":true},"priority":{"type":"integer","minimum":0.0,"title":"Priority","description":"Lower = runs first","default":0}},"type":"object","required":["schema_id"],"title":"ClientSchemaConfigCreate","description":"Request body for adding a schema to a client."},"ClientSchemaConfigListResponse":{"properties":{"configs":{"items":{"$ref":"#/components/schemas/ClientSchemaConfigResponse"},"type":"array","title":"Configs"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["configs","total"],"title":"ClientSchemaConfigListResponse","description":"Response for listing client schema configs."},"ClientSchemaConfigResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"schema_id":{"type":"string","format":"uuid","title":"Schema Id"},"is_active":{"type":"boolean","title":"Is Active"},"priority":{"type":"integer","title":"Priority"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"schema_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Name"},"schema_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Slug"},"schema_category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Category"}},"type":"object","required":["id","client_id","schema_id","is_active","priority","created_at","updated_at"],"title":"ClientSchemaConfigResponse","description":"Response for a client schema config."},"ClientSchemaConfigUpdate":{"properties":{"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"priority":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Priority"}},"type":"object","title":"ClientSchemaConfigUpdate","description":"Request body for updating a client schema config."},"ClipExportRequest":{"properties":{"segments":{"items":{"$ref":"#/components/schemas/ClipRange"},"type":"array","title":"Segments"}},"type":"object","required":["segments"],"title":"ClipExportRequest"},"ClipRange":{"properties":{"start_seconds":{"type":"number","title":"Start Seconds"},"end_seconds":{"type":"number","title":"End Seconds"}},"type":"object","required":["start_seconds","end_seconds"],"title":"ClipRange"},"ConnectionTestResult":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"file_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Count"},"sample_files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sample Files"}},"type":"object","required":["success","message"],"title":"ConnectionTestResult","description":"Result of testing a data source connection."},"CustomSchemaCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"slug":{"type":"string","maxLength":100,"minLength":1,"pattern":"^[a-z0-9-]+$","title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"category":{"anyOf":[{"$ref":"#/components/schemas/SchemaCategory"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Tags"}},"type":"object","required":["name","slug"],"title":"CustomSchemaCreate","description":"Request body for creating a custom schema from the UI (minimal fields)."},"DataSourceCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"source_type":{"$ref":"#/components/schemas/SourceType","default":"s3"},"bucket":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Bucket"},"base_prefix":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Base Prefix"},"connection_config":{"additionalProperties":true,"type":"object","title":"Connection Config"},"unanalyzed_retention_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Unanalyzed Retention Days"}},"type":"object","required":["name","connection_config"],"title":"DataSourceCreate","description":"Request body for creating a data source.","example":{"base_prefix":"calls/2024/","bucket":"my-call-recordings","connection_config":{"access_key_id":"AKIAXXXXXXXXXXXXXXXX","region":"us-east-1","secret_access_key":"your-secret-key"},"name":"Sales calls (S3)","source_type":"s3"}},"DataSourceResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"name":{"type":"string","title":"Name"},"source_type":{"type":"string","title":"Source Type"},"bucket":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bucket"},"base_prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Prefix"},"connection_info":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Connection Info"},"sync_status":{"type":"string","title":"Sync Status"},"last_sync_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Sync At"},"last_sync_file_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Sync File Count"},"sync_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sync Error"},"auto_sync_enabled":{"type":"boolean","title":"Auto Sync Enabled","default":true},"auto_sync_time":{"type":"string","title":"Auto Sync Time","default":"06:00"},"unanalyzed_retention_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Unanalyzed Retention Days"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","client_id","name","source_type","bucket","base_prefix","sync_status","last_sync_at","last_sync_file_count","sync_error","created_at","updated_at"],"title":"DataSourceResponse","description":"Data source response (secrets stripped from connection_config)."},"DataSourceUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"source_type":{"anyOf":[{"$ref":"#/components/schemas/SourceType"},{"type":"null"}]},"bucket":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Bucket"},"base_prefix":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Base Prefix"},"connection_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Connection Config"},"auto_sync_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Sync Enabled"},"auto_sync_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Auto Sync Time"},"unanalyzed_retention_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Unanalyzed Retention Days"}},"type":"object","title":"DataSourceUpdate","description":"Request body for partially updating a data source."},"DestinationTestResult":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"response_status":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Response Status"},"response_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Body"}},"type":"object","required":["success","message"],"title":"DestinationTestResult","description":"Result of testing a destination."},"DestinationType":{"type":"string","enum":["webhook","google_sheets"],"title":"DestinationType"},"FilenameParserCreate":{"properties":{"delimiter":{"type":"string","maxLength":10,"minLength":1,"title":"Delimiter","default":"_"},"field_names":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Field Names"},"strip_extension":{"type":"boolean","title":"Strip Extension","default":true},"field_mappings":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Field Mappings"}},"type":"object","required":["field_names"],"title":"FilenameParserCreate","description":"Request body for creating/updating a filename parser.","example":{"delimiter":"_","field_names":["date","agent","customer_id","direction"],"strip_extension":true}},"FilenameParserResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"delimiter":{"type":"string","title":"Delimiter"},"field_names":{"items":{"type":"string"},"type":"array","title":"Field Names"},"strip_extension":{"type":"boolean","title":"Strip Extension"},"hidden_fields":{"items":{"type":"string"},"type":"array","title":"Hidden Fields","default":[]},"filterable_fields":{"items":{"type":"string"},"type":"array","title":"Filterable Fields","default":[]},"duration_field":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration Field"},"field_mappings":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Field Mappings"},"all_field_names":{"items":{"type":"string"},"type":"array","title":"All Field Names","default":[]},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","client_id","delimiter","field_names","strip_extension","created_at","updated_at"],"title":"FilenameParserResponse","description":"Filename parser response."},"FilenameParserUpdate":{"properties":{"delimiter":{"anyOf":[{"type":"string","maxLength":10,"minLength":1},{"type":"null"}],"title":"Delimiter"},"field_names":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Field Names"},"strip_extension":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Strip Extension"},"hidden_fields":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Hidden Fields"},"filterable_fields":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filterable Fields"},"duration_field":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duration Field"},"field_mappings":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Field Mappings"}},"type":"object","title":"FilenameParserUpdate","description":"Request body for updating a filename parser."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"MessageResponse":{"properties":{"message":{"type":"string","title":"Message"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"}},"type":"object","required":["message"],"title":"MessageResponse","description":"Simple message response."},"OutputDestinationCreate":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name"},"destination_type":{"$ref":"#/components/schemas/DestinationType"},"is_enabled":{"type":"boolean","title":"Is Enabled","default":true},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"},"webhook_headers":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Webhook Headers"},"webhook_auth_type":{"anyOf":[{"$ref":"#/components/schemas/WebhookAuthType"},{"type":"null"}]},"sheets_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sheets Id"},"sheets_tab_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sheets Tab Name"},"sheets_column_mapping":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Sheets Column Mapping"}},"type":"object","required":["name","destination_type"],"title":"OutputDestinationCreate","description":"Request body for creating an output destination.","examples":[{"destination_type":"webhook","name":"Production Webhook","webhook_auth_type":"bearer","webhook_headers":{"Authorization":"Bearer your-token"},"webhook_url":"https://api.example.com/analysis-results"},{"destination_type":"google_sheets","name":"Results Spreadsheet","sheets_column_mapping":{"A":"recording_id","B":"agent","C":"compliance_score"},"sheets_id":"1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms","sheets_tab_name":"Analysis Results"}]},"OutputDestinationListResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"destination_type":{"type":"string","title":"Destination Type"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"},"sheets_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sheets Id"},"last_delivery_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Delivery At"},"failure_count":{"type":"integer","title":"Failure Count"}},"type":"object","required":["id","name","destination_type","is_enabled","last_delivery_at","failure_count"],"title":"OutputDestinationListResponse","description":"Lightweight output destination response for lists."},"OutputDestinationResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"name":{"type":"string","title":"Name"},"destination_type":{"type":"string","title":"Destination Type"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"},"webhook_headers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Webhook Headers"},"webhook_auth_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Auth Type"},"sheets_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sheets Id"},"sheets_tab_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sheets Tab Name"},"sheets_column_mapping":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Sheets Column Mapping"},"last_delivery_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Delivery At"},"failure_count":{"type":"integer","title":"Failure Count"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","client_id","name","destination_type","is_enabled","webhook_url","webhook_headers","webhook_auth_type","sheets_id","sheets_tab_name","sheets_column_mapping","last_delivery_at","failure_count","last_error","created_at","updated_at"],"title":"OutputDestinationResponse","description":"Output destination response."},"OutputDestinationUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name"},"is_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Enabled"},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"},"webhook_headers":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Webhook Headers"},"webhook_auth_type":{"anyOf":[{"$ref":"#/components/schemas/WebhookAuthType"},{"type":"null"}]},"sheets_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sheets Id"},"sheets_tab_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sheets Tab Name"},"sheets_column_mapping":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Sheets Column Mapping"}},"type":"object","title":"OutputDestinationUpdate","description":"Request body for updating an output destination."},"PaginatedResponse_AnalysisRunItemResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AnalysisRunItemResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"offset":{"type":"integer","title":"Offset"},"limit":{"type":"integer","title":"Limit"},"has_more":{"type":"boolean","title":"Has More"}},"type":"object","required":["items","total","offset","limit","has_more"],"title":"PaginatedResponse[AnalysisRunItemResponse]"},"PaginatedResponse_AnalysisRunListResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AnalysisRunListResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"offset":{"type":"integer","title":"Offset"},"limit":{"type":"integer","title":"Limit"},"has_more":{"type":"boolean","title":"Has More"}},"type":"object","required":["items","total","offset","limit","has_more"],"title":"PaginatedResponse[AnalysisRunListResponse]"},"ParseTestRequest":{"properties":{"filename":{"type":"string","minLength":1,"title":"Filename"}},"type":"object","required":["filename"],"title":"ParseTestRequest","description":"Request body for testing filename parsing."},"ParseTestResult":{"properties":{"success":{"type":"boolean","title":"Success"},"filename":{"type":"string","title":"Filename"},"parsed":{"additionalProperties":{"type":"string"},"type":"object","title":"Parsed","default":{}},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","filename"],"title":"ParseTestResult","description":"Result of parsing a filename."},"ProcessFilesRequest":{"properties":{"file_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"File Ids"}},"type":"object","required":["file_ids"],"title":"ProcessFilesRequest","description":"Request to process selected files."},"ProcessFilesResponse":{"properties":{"queued":{"type":"integer","title":"Queued"},"skipped":{"type":"integer","title":"Skipped"},"message":{"type":"string","title":"Message"}},"type":"object","required":["queued","skipped","message"],"title":"ProcessFilesResponse","description":"Response from processing files."},"RedeliverRequest":{"properties":{"destination_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Destination Ids","description":"Specific destinations to deliver to, or None for all"}},"type":"object","title":"RedeliverRequest","description":"Request to re-deliver results to destinations."},"RedeliverResult":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"delivered_to":{"items":{"type":"string"},"type":"array","title":"Delivered To","default":[]},"errors":{"additionalProperties":{"type":"string"},"type":"object","title":"Errors","default":{}}},"type":"object","required":["success","message"],"title":"RedeliverResult","description":"Result of re-delivery operation."},"RegisterUploadRequest":{"properties":{"gcs_uri":{"type":"string","title":"Gcs Uri"},"filename":{"type":"string","title":"Filename"},"file_size_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Size Bytes"}},"type":"object","required":["gcs_uri","filename"],"title":"RegisterUploadRequest","description":"Register an uploaded file as a SyncedFile after direct GCS upload."},"ResetFilesRequest":{"properties":{"file_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"File Ids"}},"type":"object","required":["file_ids"],"title":"ResetFilesRequest","description":"Request to reset files back to pending."},"ResetFilesResponse":{"properties":{"reset":{"type":"integer","title":"Reset"},"message":{"type":"string","title":"Message"}},"type":"object","required":["reset","message"],"title":"ResetFilesResponse","description":"Response from resetting files."},"RunNowRequest":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"data_source_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Data Source Id"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters"},"min_length_ms":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Min Length Ms"},"max_files":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Max Files","default":100},"schema_ids":{"items":{"type":"string","format":"uuid"},"type":"array","minItems":1,"title":"Schema Ids"},"destination_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Destination Ids","default":[]},"skip_sync":{"type":"boolean","title":"Skip Sync","description":"Skip file sync if already done (e.g., page already synced on load)","default":false}},"type":"object","required":["schema_ids"],"title":"RunNowRequest","description":"Request body for ad-hoc run now (sync + filter + analyze)."},"RunNowResponse":{"properties":{"run_id":{"type":"string","format":"uuid","title":"Run Id"},"file_count":{"type":"integer","title":"File Count"},"synced_prefix":{"type":"string","title":"Synced Prefix","default":""},"message":{"type":"string","title":"Message","default":""}},"type":"object","required":["run_id","file_count"],"title":"RunNowResponse","description":"Response from ad-hoc run now."},"SavedViewCreate":{"properties":{"name":{"type":"string","maxLength":100,"title":"Name"},"filters":{"additionalProperties":true,"type":"object","title":"Filters"},"min_length_ms":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Min Length Ms"},"schema_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Schema Id"},"violations":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Violations"},"sort_order_num":{"type":"integer","minimum":0.0,"title":"Sort Order Num","default":0}},"type":"object","required":["name"],"title":"SavedViewCreate","description":"Request body for creating a saved view."},"SavedViewResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"name":{"type":"string","title":"Name"},"filters":{"additionalProperties":true,"type":"object","title":"Filters"},"min_length_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Length Ms"},"schema_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Schema Id"},"violations":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Violations"},"sort_order_num":{"type":"integer","title":"Sort Order Num"},"created_by":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","client_id","name","filters","min_length_ms","schema_id","violations","sort_order_num","created_by","created_at","updated_at"],"title":"SavedViewResponse","description":"Full saved view response."},"SavedViewUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Name"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters"},"min_length_ms":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Min Length Ms"},"schema_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Schema Id"},"violations":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Violations"},"sort_order_num":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Sort Order Num"}},"type":"object","title":"SavedViewUpdate","description":"Request body for updating a saved view (PATCH)."},"ScheduledAnalysisCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"frequency":{"type":"string","pattern":"^(daily|weekdays|weekly|interval)$","title":"Frequency"},"time_of_day":{"type":"string","pattern":"^\\d{2}:\\d{2}$","title":"Time Of Day"},"timezone":{"type":"string","title":"Timezone","default":"America/New_York"},"day_of_week":{"anyOf":[{"type":"integer","maximum":6.0,"minimum":0.0},{"type":"null"}],"title":"Day Of Week"},"interval_minutes":{"anyOf":[{"type":"integer","maximum":1440.0,"minimum":15.0},{"type":"null"}],"title":"Interval Minutes"},"interval_hours":{"anyOf":[{"type":"integer","maximum":24.0,"minimum":1.0},{"type":"null"}],"title":"Interval Hours"},"backfill_hours":{"anyOf":[{"type":"integer","maximum":168.0,"minimum":0.0},{"type":"null"}],"title":"Backfill Hours"},"data_source_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Data Source Id"},"max_files":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Max Files","default":100},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters"},"min_length_ms":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Min Length Ms"},"schema_ids":{"items":{"type":"string","format":"uuid"},"type":"array","minItems":1,"title":"Schema Ids"},"destination_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Destination Ids","default":[]}},"type":"object","required":["name","frequency","time_of_day","schema_ids"],"title":"ScheduledAnalysisCreate","description":"Request body for creating a scheduled analysis."},"ScheduledAnalysisResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"data_source_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Data Source Id"},"name":{"type":"string","title":"Name"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"frequency":{"type":"string","title":"Frequency"},"time_of_day":{"type":"string","title":"Time Of Day"},"timezone":{"type":"string","title":"Timezone"},"day_of_week":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Day Of Week"},"interval_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval Minutes"},"interval_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval Hours"},"backfill_hours":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Backfill Hours"},"max_files":{"type":"integer","title":"Max Files"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters"},"min_length_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Length Ms"},"schema_ids":{"items":{"type":"string"},"type":"array","title":"Schema Ids"},"destination_ids":{"items":{"type":"string"},"type":"array","title":"Destination Ids"},"last_run_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Run At"},"last_run_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Last Run Id"},"last_run_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Run Status"},"next_run_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Run At"},"consecutive_failures":{"type":"integer","title":"Consecutive Failures"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","client_id","name","is_enabled","frequency","time_of_day","timezone","day_of_week","interval_minutes","interval_hours","backfill_hours","max_files","filters","min_length_ms","schema_ids","destination_ids","last_run_at","last_run_id","last_run_status","next_run_at","consecutive_failures","last_error","created_at","updated_at"],"title":"ScheduledAnalysisResponse","description":"Full scheduled analysis response."},"ScheduledAnalysisUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Name"},"is_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Enabled"},"frequency":{"anyOf":[{"type":"string","pattern":"^(daily|weekdays|weekly|interval)$"},{"type":"null"}],"title":"Frequency"},"time_of_day":{"anyOf":[{"type":"string","pattern":"^\\d{2}:\\d{2}$"},{"type":"null"}],"title":"Time Of Day"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"},"day_of_week":{"anyOf":[{"type":"integer","maximum":6.0,"minimum":0.0},{"type":"null"}],"title":"Day Of Week"},"interval_minutes":{"anyOf":[{"type":"integer","maximum":1440.0,"minimum":15.0},{"type":"null"}],"title":"Interval Minutes"},"interval_hours":{"anyOf":[{"type":"integer","maximum":24.0,"minimum":1.0},{"type":"null"}],"title":"Interval Hours"},"backfill_hours":{"anyOf":[{"type":"integer","maximum":168.0,"minimum":0.0},{"type":"null"}],"title":"Backfill Hours"},"data_source_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Data Source Id"},"max_files":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Max Files"},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters"},"min_length_ms":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Min Length Ms"},"schema_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array","minItems":1},{"type":"null"}],"title":"Schema Ids"},"destination_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Destination Ids"}},"type":"object","title":"ScheduledAnalysisUpdate","description":"Request body for updating a scheduled analysis (PATCH)."},"SchemaCategory":{"type":"string","enum":["compliance","sales","support","general"],"title":"SchemaCategory"},"SchemaFieldsUpdate":{"properties":{"output_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output Schema"},"prompt_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt Template"},"system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Prompt"},"field_prompts":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Field Prompts"},"closing_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Closing Instructions"},"schema_fields":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Schema Fields"}},"type":"object","title":"SchemaFieldsUpdate","description":"Update schema output_schema (fields) and/or prompt_template."},"SchemaRepositoryItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"schema_type":{"type":"string","title":"Schema Type"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"tags":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Tags"},"version":{"type":"integer","title":"Version"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"config_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Config Id"},"field_count":{"type":"integer","title":"Field Count","default":0},"regulation_info":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Regulation Info"},"fields":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Fields"}},"type":"object","required":["id","name","slug","description","schema_type","category","version","is_enabled"],"title":"SchemaRepositoryItem","description":"Schema item for the browseable repository."},"SchemaRepositoryResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SchemaRepositoryItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"available_tags":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Available Tags"}},"type":"object","required":["items","total","available_tags"],"title":"SchemaRepositoryResponse","description":"Response for the schema repository browse endpoint."},"SendReportRequest":{"properties":{"to_emails":{"items":{"type":"string","format":"email"},"type":"array","title":"To Emails"},"report_html":{"type":"string","title":"Report Html"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"}},"type":"object","required":["to_emails","report_html"],"title":"SendReportRequest","description":"Request to send an analytics report via email."},"SourceType":{"type":"string","enum":["s3","gcs","close"],"title":"SourceType"},"SyncResult":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"new_files":{"type":"integer","title":"New Files","default":0},"updated_files":{"type":"integer","title":"Updated Files","default":0},"skipped_files":{"type":"integer","title":"Skipped Files","default":0},"total_files":{"type":"integer","title":"Total Files","default":0}},"type":"object","required":["success","message"],"title":"SyncResult","description":"Result of syncing files from a data source."},"SyncedFileResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"source_uri":{"type":"string","title":"Source Uri"},"filename":{"type":"string","title":"Filename"},"file_size_bytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"File Size Bytes"},"last_modified":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Modified"},"content_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Hash"},"parsed_metadata":{"additionalProperties":true,"type":"object","title":"Parsed Metadata"},"status":{"type":"string","title":"Status"},"recording_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Recording Id"},"discovered_at":{"type":"string","format":"date-time","title":"Discovered At"}},"type":"object","required":["id","client_id","source_uri","filename","file_size_bytes","last_modified","content_hash","parsed_metadata","status","recording_id","discovered_at"],"title":"SyncedFileResponse","description":"Full synced file response."},"TestWebhookRequest":{"properties":{"webhook_url":{"type":"string","title":"Webhook Url"}},"type":"object","required":["webhook_url"],"title":"TestWebhookRequest","description":"Request body for testing webhook delivery."},"TestWebhookResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status Code"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success"],"title":"TestWebhookResponse","description":"Response from webhook test."},"UploadUrlRequest":{"properties":{"filename":{"type":"string","title":"Filename"},"content_type":{"type":"string","title":"Content Type","default":"audio/mpeg"}},"type":"object","required":["filename"],"title":"UploadUrlRequest","description":"Request a presigned upload URL for direct GCS upload."},"UploadUrlResponse":{"properties":{"upload_url":{"type":"string","title":"Upload Url"},"gcs_uri":{"type":"string","title":"Gcs Uri"},"expires_in_seconds":{"type":"integer","title":"Expires In Seconds","default":900}},"type":"object","required":["upload_url","gcs_uri"],"title":"UploadUrlResponse","description":"Presigned URL for uploading a file directly to GCS."},"UserInvite":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"Email address to invite"}},"type":"object","required":["email"],"title":"UserInvite","description":"Request to invite a new user to a client."},"UserListResponse":{"properties":{"users":{"items":{"$ref":"#/components/schemas/UserResponse"},"type":"array","title":"Users"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["users","total"],"title":"UserListResponse","description":"List of users for a client."},"UserResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"client_id":{"type":"string","format":"uuid","title":"Client Id"},"is_active":{"type":"boolean","title":"Is Active"},"is_admin":{"type":"boolean","title":"Is Admin","default":false},"data_scope":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Data Scope"},"permissions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Permissions"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_login_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login At"}},"type":"object","required":["id","email","client_id","is_active","created_at","last_login_at"],"title":"UserResponse","description":"User response."},"UserUpdate":{"properties":{"data_scope":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Data Scope"},"is_admin":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Admin"},"permissions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Permissions"}},"type":"object","title":"UserUpdate","description":"Update user fields (e.g. data_scope, is_admin)."},"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"},"WebhookAuthType":{"type":"string","enum":["none","bearer","basic","custom_header"],"title":"WebhookAuthType"}},"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-API-Key"},"SessionToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"x-mcp-tools":[{"name":"list_call_analyses","description":"Legacy analysis browser. List analyzed calls for your account, newest first. Returns each call's metadata and structured analysis findings, but NOT the full transcript (transcripts are large — fetch one on demand with get_call_analysis). Its search argument matches filenames only. For transcript, partner, coach, or outcome filtering, use search_calls. Paginated.","inputSchema":{"type":"object","properties":{"date_from":{"type":"string","description":"Inclusive lower bound, ISO date/datetime (e.g. 2026-07-01)."},"date_to":{"type":"string","description":"Inclusive upper bound, ISO date/datetime."},"search":{"type":"string","description":"Case-insensitive substring match on filename only."},"limit":{"type":"integer","description":"Max results to return (1-200, default 25)."},"offset":{"type":"integer","description":"Number of results to skip, for pagination (default 0)."}}}},{"name":"describe_call_data","description":"Discover the authenticated account's available partners, campaigns, coaches, outcomes, raw metadata fields, analysis criteria, date range, coverage, aliases, and supported query options. Call this before guessing a dimension value or analysis criterion.","inputSchema":{"type":"object","properties":{"value_limit":{"type":"integer","description":"Maximum values returned per dimension (1-200, default 100)."}}}},{"name":"search_calls","description":"Search unique calls using canonical partner/campaign/coach/outcome filters, actual call dates, duration, transcript contents, speaker role, and analysis pass/fail criteria. Returns total count, compact call metadata, timestamped transcript evidence, and item_id values for get_call_analysis. Reanalyses are deduplicated.","inputSchema":{"type":"object","properties":{"date_from":{"type":"string","description":"Inclusive ISO call date/datetime."},"date_to":{"type":"string","description":"Inclusive ISO call date/datetime."},"partners":{"type":"array","items":{"type":"string"}},"campaigns":{"type":"array","items":{"type":"string"}},"coaches":{"type":"array","items":{"type":"string"}},"outcomes":{"type":"array","items":{"type":"string"}},"min_duration_seconds":{"type":"number","minimum":0},"max_duration_seconds":{"type":"number","minimum":0},"transcript_query":{"type":"string","description":"Case-insensitive exact substring or words to find in transcript text."},"match_mode":{"type":"string","enum":["phrase","all_words","any_words"],"description":"Transcript query semantics (default phrase)."},"spoken_by":{"type":"string","enum":["anyone","coach","customer"],"description":"Restrict transcript matches by conservatively inferred role (default anyone)."},"criterion_filters":{"type":"object","description":"Analysis criterion reference to required status, e.g. {'schema-slug:correct_guarantee_explanation':'fail'}. Use describe_call_data to discover references.","additionalProperties":{"type":"string","enum":["pass","fail","not_applicable","unknown"]}},"sort_order":{"type":"string","enum":["asc","desc"]},"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}}}},{"name":"aggregate_calls","description":"Count and summarize unique calls using the same filters as search_calls. Group by one or two dimensions: day, week, month, partner, campaign, coach, or outcome. Optionally calculate pass/fail rates for an analysis criterion.","inputSchema":{"type":"object","properties":{"group_by":{"type":"array","minItems":1,"maxItems":2,"items":{"type":"string","enum":["day","week","month","partner","campaign","coach","outcome"]}},"criterion":{"type":"string","description":"Optional schema-slug:criterion-key reference for pass/fail rates."},"date_from":{"type":"string"},"date_to":{"type":"string"},"partners":{"type":"array","items":{"type":"string"}},"campaigns":{"type":"array","items":{"type":"string"}},"coaches":{"type":"array","items":{"type":"string"}},"outcomes":{"type":"array","items":{"type":"string"}},"min_duration_seconds":{"type":"number","minimum":0},"max_duration_seconds":{"type":"number","minimum":0},"transcript_query":{"type":"string"},"match_mode":{"type":"string","enum":["phrase","all_words","any_words"]},"spoken_by":{"type":"string","enum":["anyone","coach","customer"]},"criterion_filters":{"type":"object","additionalProperties":{"type":"string","enum":["pass","fail","not_applicable","unknown"]}},"group_limit":{"type":"integer","minimum":1,"maximum":1000}},"required":["group_by"]}},{"name":"get_call_analysis","description":"Get the full analysis and verbatim, speaker-diarized transcript for a single call, identified by the item_id returned in search_calls or list_call_analyses.","inputSchema":{"type":"object","properties":{"item_id":{"type":"string","description":"The call's item_id (a UUID) from search_calls or list_call_analyses."}},"required":["item_id"]}}]}