{"openapi":"3.1.0","info":{"title":"FutureSmart Database Agent API","version":"0.1.0","description":"Ask a SQL database questions in plain English. This is the public subset of the deployed contract: the operations a Database Agent API key can call on its own agent."},"servers":[{"url":"https://futuresmart.ai/database-agent/api"}],"tags":[{"name":"Chat","description":"Ask questions and follow-ups. Every call is scoped to one agent."},{"name":"Conversations","description":"Read, rename, delete and export saved conversations."},{"name":"Agent","description":"Read and change the agent's own settings."},{"name":"Databases","description":"The databases this agent answers from."},{"name":"Tables and columns","description":"Which tables the agent may query, and the descriptions it reads them by."},{"name":"Example questions","description":"Question and SQL pairs the agent learns from."},{"name":"Column value lookup","description":"Columns whose stored values the agent looks up before it writes SQL."},{"name":"Analytics","description":"How the agent is being used and where it fails."},{"name":"Chat widget","description":"The embeddable chat widget's appearance."}],"paths":{"/v1/agents/{agent_id}":{"get":{"tags":["Agent"],"summary":"Get the agent","description":"Get a specific agent by ID\n\nThe response includes the owner_id (email) of the agent.","operationId":"get_agent_v1_agents__agent_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"put":{"tags":["Agent"],"summary":"Replace the agent's settings","description":"Update an agent (full update - replaces all fields)\n\nGets owner_id (email) from Google Auth token to verify ownership.","operationId":"update_agent_full_v1_agents__agent_id__put","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAgentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"patch":{"tags":["Agent"],"summary":"Update the agent's settings","description":"Partially update an agent (only updates provided fields)\n\nGets owner_id (email) from Google Auth token to verify ownership.","operationId":"update_agent_partial_v1_agents__agent_id__patch","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchAgentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases":{"get":{"tags":["Databases"],"summary":"List Databases","operationId":"list_databases_v1_agents__agent_id__databases_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"post":{"tags":["Databases"],"summary":"Add Database","operationId":"add_database_v1_agents__agent_id__databases_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddDatabaseRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/check":{"post":{"tags":["Databases"],"summary":"Check Databases","description":"Health-check every DB (connection status + response time + description status).","operationId":"check_databases_v1_agents__agent_id__databases_check_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/bulk":{"post":{"tags":["Databases"],"summary":"Bulk Import","operationId":"bulk_import_v1_agents__agent_id__databases_bulk_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_bulk_import_v1_agents__agent_id__databases_bulk_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/bulk-delete":{"post":{"tags":["Databases"],"summary":"Bulk Delete","description":"Delete multiple databases (and their scoped metadata) in a single action.\nBody: {\"db_ids\": [\"DB_...\", \"DB_...\"]}. Best-effort per DB; returns per-DB results + a summary.","operationId":"bulk_delete_v1_agents__agent_id__databases_bulk_delete_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteDatabasesRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/{db_id}/description/generate":{"post":{"tags":["Databases"],"summary":"Generate Description","operationId":"generate_description_v1_agents__agent_id__databases__db_id__description_generate_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/{db_id}/description/generate/{job_id}":{"get":{"tags":["Databases"],"summary":"Poll Description","operationId":"poll_description_v1_agents__agent_id__databases__db_id__description_generate__job_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/{db_id}":{"get":{"tags":["Databases"],"summary":"Get Database","operationId":"get_database_v1_agents__agent_id__databases__db_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"patch":{"tags":["Databases"],"summary":"Update Database","operationId":"update_database_v1_agents__agent_id__databases__db_id__patch","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDatabaseRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"delete":{"tags":["Databases"],"summary":"Delete Database","operationId":"delete_database_v1_agents__agent_id__databases__db_id__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/{db_id}/status":{"patch":{"tags":["Databases"],"summary":"Update Database Status","operationId":"update_database_status_v1_agents__agent_id__databases__db_id__status_patch","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatabaseStatusRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/{db_id}/description":{"patch":{"tags":["Databases"],"summary":"Update Database Description","operationId":"update_database_description_v1_agents__agent_id__databases__db_id__description_patch","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatabaseDescriptionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/{db_id}/tables/high-cardinality-columns":{"get":{"tags":["Column value lookup"],"summary":"Get High Cardinality Columns For Db","description":"Get high-cardinality columns for an agent, scoped to a specific database.","operationId":"get_high_cardinality_columns_for_db_v1_agents__agent_id__databases__db_id__tables_high_cardinality_columns_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","description":"Database ID","title":"Db Id"},"description":"Database ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"post":{"tags":["Column value lookup"],"summary":"Set High Cardinality Columns For Db","description":"Set high-cardinality columns for an agent, scoped to a specific database.\n\nIndexes the column values into the HC Qdrant collection (tagged with db_id),\nthen merges the configuration into TableDescription. Mirrors the agent-global\nroute but resolves the DB connection by db_id so the right database is read.","operationId":"set_high_cardinality_columns_for_db_v1_agents__agent_id__databases__db_id__tables_high_cardinality_columns_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","description":"Database ID","title":"Db Id"},"description":"Database ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HighCardinalityColumnsRequest","description":"High cardinality columns configuration"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"delete":{"tags":["Column value lookup"],"summary":"Delete High Cardinality Columns For Db","description":"Delete specific high-cardinality columns for an agent, scoped to a database.\n\nRemoves the columns from the config and best-effort deletes the matching\ndb_id-scoped vectors from the HC Qdrant collection.","operationId":"delete_high_cardinality_columns_for_db_v1_agents__agent_id__databases__db_id__tables_high_cardinality_columns_delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","description":"Database ID","title":"Db Id"},"description":"Database ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HighCardinalityColumnsRequest","description":"High cardinality columns to remove"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/{db_id}/tables/hc-profile":{"get":{"tags":["Column value lookup"],"summary":"Get All Hc Profiles For Db","description":"Get stored HC column profiles for all profiled tables of a specific database.","operationId":"get_all_hc_profiles_for_db_v1_agents__agent_id__databases__db_id__tables_hc_profile_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","description":"Database ID","title":"Db Id"},"description":"Database ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"post":{"tags":["Column value lookup"],"summary":"Trigger Hc Profile For Db","description":"Trigger automatic profiling of a specific database's tables.","operationId":"trigger_hc_profile_for_db_v1_agents__agent_id__databases__db_id__tables_hc_profile_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","description":"Database ID","title":"Db Id"},"description":"Database ID"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerHCProfileRequest","default":{"auto_register_hc":true}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"delete":{"tags":["Column value lookup"],"summary":"Delete All Hc Profiles For Db","description":"Delete all stored HC column profiles for a specific database (and its Qdrant vectors).","operationId":"delete_all_hc_profiles_for_db_v1_agents__agent_id__databases__db_id__tables_hc_profile_delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","description":"Database ID","title":"Db Id"},"description":"Database ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/{db_id}/tables/{table_name}/hc-profile":{"get":{"tags":["Column value lookup"],"summary":"Get Table Hc Profile For Db","description":"Get the stored HC column profile for a specific table in a specific database.","operationId":"get_table_hc_profile_for_db_v1_agents__agent_id__databases__db_id__tables__table_name__hc_profile_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","description":"Database ID","title":"Db Id"},"description":"Database ID"},{"name":"table_name","in":"path","required":true,"schema":{"type":"string","description":"Table name","title":"Table Name"},"description":"Table name"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"delete":{"tags":["Column value lookup"],"summary":"Delete Table Hc Profile For Db","description":"Delete the stored HC column profile for a specific table in a specific database.","operationId":"delete_table_hc_profile_for_db_v1_agents__agent_id__databases__db_id__tables__table_name__hc_profile_delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","description":"Database ID","title":"Db Id"},"description":"Database ID"},{"name":"table_name","in":"path","required":true,"schema":{"type":"string","description":"Table name","title":"Table Name"},"description":"Table name"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/{db_id}/tables":{"get":{"tags":["Tables and columns"],"summary":"Db List Tables","operationId":"db_list_tables_v1_agents__agent_id__databases__db_id__tables_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"post":{"tags":["Tables and columns"],"summary":"Db Create Tables","operationId":"db_create_tables_v1_agents__agent_id__databases__db_id__tables_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_db_create_tables_v1_agents__agent_id__databases__db_id__tables_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"put":{"tags":["Tables and columns"],"summary":"Db Put Tables","description":"Bulk update table descriptions for a db_id — merges into the existing set (does not blank\ntables absent from the payload). Accepts a bare [{table_name, description}] array, a\n{\"tables\": [...]} object, or a file. Returns an \"updated\" message.","operationId":"db_put_tables_v1_agents__agent_id__databases__db_id__tables_put","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_db_put_tables_v1_agents__agent_id__databases__db_id__tables_put"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"delete":{"tags":["Tables and columns"],"summary":"Db Delete Tables","description":"Clear table descriptions. Body: {\"table_names\": [\"t1\",\"t2\"]} for some, or {\"delete_all\": true} for all.\n(Tables are not deleted — only their description text is cleared.)","operationId":"db_delete_tables_v1_agents__agent_id__databases__db_id__tables_delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteTablesRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/{db_id}/tables/generate":{"post":{"tags":["Tables and columns"],"summary":"Db Generate Table Descriptions","description":"Start an async job that auto-generates a description for every table in the DB (via LLM).\n`overwrite=true` regenerates all tables; default only fills tables whose description is\ncurrently blank (manually-set ones are preserved). Poll the returned job_id.","operationId":"db_generate_table_descriptions_v1_agents__agent_id__databases__db_id__tables_generate_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"overwrite","in":"query","required":false,"schema":{"type":"boolean","description":"true = regenerate ALL tables; false (default) = only fill tables whose description is blank (manual ones preserved)","default":false,"title":"Overwrite"},"description":"true = regenerate ALL tables; false (default) = only fill tables whose description is blank (manual ones preserved)"}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/{db_id}/tables/generate/{job_id}":{"get":{"tags":["Tables and columns"],"summary":"Db Poll Table Descriptions","description":"Poll a table-description generation job → {status, message, error}.","operationId":"db_poll_table_descriptions_v1_agents__agent_id__databases__db_id__tables_generate__job_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/{db_id}/tables/{table_name}/generate":{"post":{"tags":["Tables and columns"],"summary":"Db Generate One Table Description","description":"Auto-generate (LLM) + save the description for a SINGLE table. Synchronous — returns\n`{table_name, description}` directly (no job/poll). Other tables and flags are untouched.","operationId":"db_generate_one_table_description_v1_agents__agent_id__databases__db_id__tables__table_name__generate_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"table_name","in":"path","required":true,"schema":{"type":"string","title":"Table Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/{db_id}/tables/{table_name}/visibility":{"patch":{"tags":["Tables and columns"],"summary":"Db Table Visibility","operationId":"db_table_visibility_v1_agents__agent_id__databases__db_id__tables__table_name__visibility_patch","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"table_name","in":"path","required":true,"schema":{"type":"string","title":"Table Name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SingleTableVisibilityRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/{db_id}/tables/{table_name}":{"put":{"tags":["Tables and columns"],"summary":"Db Update Table Description","description":"Update the description for a single table in the given db_id.","operationId":"db_update_table_description_v1_agents__agent_id__databases__db_id__tables__table_name__put","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"table_name","in":"path","required":true,"schema":{"type":"string","title":"Table Name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SingleTableUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/{db_id}/tables/{table_name}/columns":{"get":{"tags":["Tables and columns"],"summary":"Db Get Columns","operationId":"db_get_columns_v1_agents__agent_id__databases__db_id__tables__table_name__columns_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"table_name","in":"path","required":true,"schema":{"type":"string","title":"Table Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"put":{"tags":["Tables and columns"],"summary":"Db Update Columns","operationId":"db_update_columns_v1_agents__agent_id__databases__db_id__tables__table_name__columns_put","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","title":"Db Id"}},{"name":"table_name","in":"path","required":true,"schema":{"type":"string","title":"Table Name"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkColumnDescriptionsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/databases/{db_id}/few-shot-examples":{"get":{"tags":["Example questions"],"summary":"Get All Few Shot Examples For Db","description":"Get all few-shot examples for an agent scoped to a specific database","operationId":"get_all_few_shot_examples_for_db_v1_agents__agent_id__databases__db_id__few_shot_examples_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","description":"Database ID","title":"Db Id"},"description":"Database ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"post":{"tags":["Example questions"],"summary":"Create Few Shot Examples For Db","description":"Upload/Create few-shot examples for an agent scoped to a specific database (bulk)","operationId":"create_few_shot_examples_for_db_v1_agents__agent_id__databases__db_id__few_shot_examples_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","description":"Database ID","title":"Db Id"},"description":"Database ID"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_few_shot_examples_for_db_v1_agents__agent_id__databases__db_id__few_shot_examples_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"put":{"tags":["Example questions"],"summary":"Update Few Shot Examples For Db","description":"Update few-shot examples for an agent scoped to a specific database (bulk)","operationId":"update_few_shot_examples_for_db_v1_agents__agent_id__databases__db_id__few_shot_examples_put","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","description":"Database ID","title":"Db Id"},"description":"Database ID"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_update_few_shot_examples_for_db_v1_agents__agent_id__databases__db_id__few_shot_examples_put"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"delete":{"tags":["Example questions"],"summary":"Delete Few Shot Examples For Db","description":"Delete few-shot examples for an agent scoped to a specific database.\n\n- One or many: `{\"nl_queries\": [\"...\", \"...\"]}`\n- All: `{\"delete_all\": true}`","operationId":"delete_few_shot_examples_for_db_v1_agents__agent_id__databases__db_id__few_shot_examples_delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"db_id","in":"path","required":true,"schema":{"type":"string","description":"Database ID","title":"Db Id"},"description":"Database ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteFewShotRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/chat":{"post":{"tags":["Chat"],"summary":"Ask a question","description":"Send a chat message to an agent","operationId":"chat_with_agent_v1_agents__agent_id__chat_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"stream","in":"query","required":false,"schema":{"type":"boolean","description":"Enable streaming response","default":false,"title":"Stream"},"description":"Enable streaming response"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/sessions/{session_id}/export":{"get":{"tags":["Conversations"],"summary":"Export an answer's rows as CSV","description":"Return a fresh S3 pre-signed CSV download URL.\n\n- chat_id provided → that exact query turn's CSV (works forever).\n- No chat_id → most recent SQL result in the session.\n\nUI only needs session_id + chat_id (both already in the orchestration response).\nNo NL2SQL agent_id required.","operationId":"export_session_csv_v1_sessions__session_id__export_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID","title":"Session Id"},"description":"Session ID"},{"name":"chat_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Specific chat turn to export. Omit to get the most recent.","title":"Chat Id"},"description":"Specific chat turn to export. Omit to get the most recent."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/sessions/{session_id}/messages":{"get":{"tags":["Chat"],"summary":"Get a conversation's messages","description":"Get message history for a session","operationId":"get_session_messages_v1_agents__agent_id__sessions__session_id__messages_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID","title":"Session Id"},"description":"Session ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"post":{"tags":["Chat"],"summary":"Ask a follow-up in a conversation","description":"Send a message to an existing session","operationId":"send_message_to_session_v1_agents__agent_id__sessions__session_id__messages_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID","title":"Session Id"},"description":"Session ID"},{"name":"stream","in":"query","required":false,"schema":{"type":"boolean","description":"Enable streaming response","default":false,"title":"Stream"},"description":"Enable streaming response"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionMessageRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/feedback":{"post":{"tags":["Chat"],"summary":"Rate an answer","description":"Submit feedback on agent responses","operationId":"submit_feedback_v1_agents__agent_id__feedback_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/statistics":{"get":{"tags":["Analytics"],"summary":"Get usage statistics","description":"Get statistics for a specific agent","operationId":"get_agent_statistics_v1_agents__agent_id__statistics_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start time for statistics (ISO format)","title":"Start Time"},"description":"Start time for statistics (ISO format)"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End time for statistics (ISO format)","title":"End Time"},"description":"End time for statistics (ISO format)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/analytics/scorecard":{"get":{"tags":["Analytics"],"summary":"Analytics Scorecard","description":"Everything for one agent in one response: usage, quality (answered/failed),\nrouting (SQL vs cross-DB vs pandas, and per-database), performance (latency incl.\ntime inside the customer database), cost, tokens. Pass start_date+end_date for a\ncustom range, else period. `bucket` sets the usage.per_day granularity (use hour for\nintraday time-of-day activity).","operationId":"analytics_scorecard_v1_agents__agent_id__analytics_scorecard_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"period","in":"query","required":false,"schema":{"type":"string","default":"week","title":"Period"}},{"name":"bucket","in":"query","required":false,"schema":{"type":"string","description":"usage.per_day granularity: hour | day | week | month","default":"day","title":"Bucket"},"description":"usage.per_day granularity: hour | day | week | month"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Custom range start (ISO-8601); with end_date overrides period","title":"Start Date"},"description":"Custom range start (ISO-8601); with end_date overrides period"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Custom range end, exclusive (ISO-8601)","title":"End Date"},"description":"Custom range end, exclusive (ISO-8601)"},{"name":"top_n","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Top N"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/analytics/failures":{"get":{"tags":["Analytics"],"summary":"Analytics Failures","description":"Failure category/stage/database breakdown + the most-repeated failed queries.","operationId":"analytics_failures_v1_agents__agent_id__analytics_failures_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"period","in":"query","required":false,"schema":{"type":"string","default":"week","title":"Period"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Custom range start (ISO-8601); with end_date overrides period","title":"Start Date"},"description":"Custom range start (ISO-8601); with end_date overrides period"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Custom range end, exclusive (ISO-8601)","title":"End Date"},"description":"Custom range end, exclusive (ISO-8601)"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"sql_error | db_connection | no_rows | sql_generation | out_of_scope | unanswered | exception","title":"Category"},"description":"sql_error | db_connection | no_rows | sql_generation | out_of_scope | unanswered | exception"},{"name":"failed_stage","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Node the failure is attributed to: router | db_router | sql_gen | sql_exec | final_answer | chat_api","title":"Failed Stage"},"description":"Node the failure is attributed to: router | db_router | sql_gen | sql_exec | final_answer | chat_api"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/analytics/trends":{"get":{"tags":["Analytics"],"summary":"Analytics Trends","description":"Bucketed trend series + a server-side regression flag, plus the full\ncurrent-vs-previous-period comparison for every headline metric. Pass\nstart_date+end_date for a custom range (bucketed by `bucket`), else the trailing\n`weeks` window.","operationId":"analytics_trends_v1_agents__agent_id__analytics_trends_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"weeks","in":"query","required":false,"schema":{"type":"integer","maximum":52,"minimum":1,"default":8,"title":"Weeks"}},{"name":"bucket","in":"query","required":false,"schema":{"type":"string","default":"week","title":"Bucket"}},{"name":"metrics","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"csv subset of success_rate,avg_ms,p95_ms,cost,failures,total_queries","title":"Metrics"},"description":"csv subset of success_rate,avg_ms,p95_ms,cost,failures,total_queries"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Custom range start (ISO-8601); with end_date overrides the trailing `weeks` window","title":"Start Date"},"description":"Custom range start (ISO-8601); with end_date overrides the trailing `weeks` window"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Custom range end, exclusive (ISO-8601)","title":"End Date"},"description":"Custom range end, exclusive (ISO-8601)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/analytics/queries":{"get":{"tags":["Analytics"],"summary":"Analytics Queries","description":"Per-query drill-down — slowest / most-expensive / failure investigation, each row\ncarrying the SQL it ran, the database it used and its per-node spend. Pass\nstart_date+end_date for a custom range, else period (both ignored when chat_id is\nset).","operationId":"analytics_queries_v1_agents__agent_id__analytics_queries_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"period","in":"query","required":false,"schema":{"type":"string","default":"week","title":"Period"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"latency_ms","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"type":"string","default":"desc","title":"Order"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"answered | unanswered","title":"Status"},"description":"answered | unanswered"},{"name":"outcome","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"success | failure","title":"Outcome"},"description":"success | failure"},{"name":"failure_category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Category"}},{"name":"failed_stage","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failed Stage"}},{"name":"route","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"sql | cross_db | pandas | direct_answer","title":"Route"},"description":"sql | cross_db | pandas | direct_answer"},{"name":"model","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"}},{"name":"db_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Only queries routed to this database","title":"Db Id"},"description":"Only queries routed to this database"},{"name":"min_tokens","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Min Tokens"}},{"name":"min_cost_usd","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"title":"Min Cost Usd"}},{"name":"min_latency_ms","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Min Latency Ms"}},{"name":"chat_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Id"}},{"name":"feedback","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by user feedback: positive | negative | none (unrated) | any (rated)","title":"Feedback"},"description":"Filter by user feedback: positive | negative | none (unrated) | any (rated)"},{"name":"include_node_data","in":"query","required":false,"schema":{"type":"boolean","description":"Include the per-node breakdown (metrics.node_data) in each row; set false for a lean list","default":true,"title":"Include Node Data"},"description":"Include the per-node breakdown (metrics.node_data) in each row; set false for a lean list"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Custom range start (ISO-8601); with end_date overrides period (ignored when chat_id is set)","title":"Start Date"},"description":"Custom range start (ISO-8601); with end_date overrides period (ignored when chat_id is set)"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Custom range end, exclusive (ISO-8601)","title":"End Date"},"description":"Custom range end, exclusive (ISO-8601)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/config":{"get":{"tags":["Agent"],"summary":"Get the agent's model configuration","description":"Get agent configuration including nodes and agent parameters","operationId":"get_agent_config_v1_agents__agent_id__config_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"fields","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated list of fields to return (e.g., nodes,agent_params)","title":"Fields"},"description":"Comma-separated list of fields to return (e.g., nodes,agent_params)"},{"name":"node_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter specific node configuration","title":"Node Name"},"description":"Filter specific node configuration"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/config/nodes":{"post":{"tags":["Agent"],"summary":"Set per-step model configuration","description":"Upsert (create or update) node configurations for an agent","operationId":"upsert_node_configs_v1_agents__agent_id__config_nodes_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeConfigsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/config/params":{"patch":{"tags":["Agent"],"summary":"Update agent parameters","description":"Partially update agent parameters","operationId":"patch_agent_params_v1_agents__agent_id__config_params_patch","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentParamsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/config/nodes/{node_name}":{"delete":{"tags":["Agent"],"summary":"Reset a step to its default configuration","description":"Delete a node configuration","operationId":"reset_to_default_v1_agents__agent_id__config_nodes__node_name__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"node_name","in":"path","required":true,"schema":{"type":"string","description":"Node name (must be one of the valid LangGraph nodes)","title":"Node Name"},"description":"Node name (must be one of the valid LangGraph nodes)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/sessions":{"get":{"tags":["Conversations"],"summary":"List conversations","description":"Get all sessions for a specific agent\n\nReturns a list of chat sessions associated with the agent.\n- If authenticated, returns sessions for the authenticated user\n- If `show_guests_session=true` and user is owner, includes guest sessions","operationId":"get_agent_sessions_v1_agents__agent_id__sessions_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"show_guests_session","in":"query","required":false,"schema":{"type":"boolean","description":"Include guest sessions (owner only)","default":false,"title":"Show Guests Session"},"description":"Include guest sessions (owner only)"},{"name":"email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by email","title":"Email"},"description":"Filter by email"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/sessions/{session_id}":{"get":{"tags":["Conversations"],"summary":"Get a conversation","description":"Get a specific session by ID with conversation data\n\nReturns session details including:\n- Session metadata (title, created time)\n- Full conversation history","operationId":"get_session_v1_agents__agent_id__sessions__session_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID","title":"Session Id"},"description":"Session ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"patch":{"tags":["Conversations"],"summary":"Rename a conversation","description":"Update a session (partial update)\n\nCurrently supports updating:\n- session_title: Update the session title","operationId":"update_session_v1_agents__agent_id__sessions__session_id__patch","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID","title":"Session Id"},"description":"Session ID"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSessionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"delete":{"tags":["Conversations"],"summary":"Delete a conversation","description":"Delete a session (soft delete)\n\nMarks the session as deleted in the database.\nThe session data is not physically removed.","operationId":"delete_session_v1_agents__agent_id__sessions__session_id__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session ID","title":"Session Id"},"description":"Session ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}},"/v1/agents/{agent_id}/widget/settings":{"get":{"tags":["Chat widget"],"summary":"Retrieve Widget Settings","description":"Get the agent's widget settings\n\nAuthenticated callers get the full record. Anonymous callers are allowed only when the agent\nhas opted this surface in (`is_public`, or `fullscreen_is_public` with `?from_full_screen=true`)\nand their Origin matches the matching allowlist; they receive display fields only.\n\nAn agent that has never been configured returns the documented defaults rather than 404.","operationId":"retrieve_widget_settings_v1_agents__agent_id__widget_settings_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WidgetSettingsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"post":{"tags":["Chat widget"],"summary":"Save Widget Settings","description":"Create or update the agent's widget settings\n\nMultipart. Every field is optional and only what is sent is written, so saving one field\nleaves the rest untouched. An uploaded file takes precedence over the matching `_url`.","operationId":"save_widget_settings_v1_agents__agent_id__widget_settings_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_save_widget_settings_v1_agents__agent_id__widget_settings_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WidgetSettingsSaveResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"},"delete":{"tags":["Chat widget"],"summary":"Remove Widget Settings","description":"Delete the agent's widget settings\n\nSoft delete: the row is kept with `deleted_at`/`deleted_by` so the change stays auditable, and\nthe agent falls back to the default appearance.","operationId":"remove_widget_settings_v1_agents__agent_id__widget_settings_delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","description":"Agent ID","title":"Agent Id"},"description":"Agent ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-credential":"Database Agent API key for this agent (X-API-Key)"}}},"components":{"schemas":{"AddDatabaseRequest":{"properties":{"db_host":{"type":"string","title":"Db Host","description":"Database host address"},"db_name":{"type":"string","title":"Db Name","description":"Database name"},"db_user":{"type":"string","title":"Db User","description":"Database username"},"db_password":{"type":"string","title":"Db Password","description":"Database password"},"db_port":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Db Port","description":"Database port (default: the engine's — 3306 MySQL, 5432 PostgreSQL)"},"db_engine":{"type":"string","title":"Db Engine","description":"Database engine (mysql, postgresql)","default":"mysql"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Routing description (optional — blank → auto-generate)"}},"type":"object","required":["db_host","db_name","db_user","db_password"],"title":"AddDatabaseRequest","description":"Add a database to an agent. `description` is OPTIONAL — leave blank to auto-generate it\nafter adding (the DB is saved inactive until a description exists)."},"AgentParamsRequest":{"properties":{"owner_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Id","description":"Owner ID (optional if using auth token)"},"agent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Name","description":"Name of the agent"},"system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Prompt","description":"System prompt for the agent"},"service_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Service Description","description":"Service description for the agent"},"greet_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Greet Message","description":"Greeting message"},"debug_info":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Debug Info","description":"Enable debug information"},"show_sql_query":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Sql Query","description":"If true, the chat response includes the generated SQL query"},"show_db_result":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Db Result","description":"If true, the chat response includes the raw DB result rows"},"graph_output":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Graph Output","description":"Enable graph output"},"allowed_graphs":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Graphs","description":"List of allowed graph types (e.g., bar, line, pie)"},"follow_up":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Follow Up","description":"Suggest follow-up questions after each answer"},"voice_input_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Voice Input Enabled","description":"Offer speech input in the ask box"},"voice_output_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Voice Output Enabled","description":"Offer read-aloud on each answer"},"suggested_questions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Suggested Questions","description":"Starter questions shown before the first message"},"max_query_execution_time":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Query Execution Time","description":"Maximum query execution time in seconds"},"enable_query_caching":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enable Query Caching","description":"Enable query caching"},"is_public":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Public","description":"Allow the embedded widget to be used without signing in"},"allowed_domains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Domains","description":"Domains the widget may be embedded on (e.g. ['example.com', '*.example.com']). Empty means any domain"},"fullscreen_is_public":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Fullscreen Is Public","description":"Allow the full-screen share link to be used without signing in"},"fullscreen_allowed_domains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Fullscreen Allowed Domains","description":"Domains the full-screen link may be opened from. Empty means any domain"}},"type":"object","title":"AgentParamsRequest","description":"Request model for updating agent parameters"},"Body_bulk_import_v1_agents__agent_id__databases_bulk_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_bulk_import_v1_agents__agent_id__databases_bulk_post"},"Body_create_few_shot_examples_for_db_v1_agents__agent_id__databases__db_id__few_shot_examples_post":{"properties":{"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File"},"few_shot_examples":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Few Shot Examples"}},"type":"object","title":"Body_create_few_shot_examples_for_db_v1_agents__agent_id__databases__db_id__few_shot_examples_post"},"Body_db_create_tables_v1_agents__agent_id__databases__db_id__tables_post":{"properties":{"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File"},"table_descriptions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Table Descriptions"}},"type":"object","title":"Body_db_create_tables_v1_agents__agent_id__databases__db_id__tables_post"},"Body_db_put_tables_v1_agents__agent_id__databases__db_id__tables_put":{"properties":{"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File"},"table_descriptions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Table Descriptions"}},"type":"object","title":"Body_db_put_tables_v1_agents__agent_id__databases__db_id__tables_put"},"Body_save_widget_settings_v1_agents__agent_id__widget_settings_post":{"properties":{"heading":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Heading"},"sub_heading":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Heading"},"greet_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Greet Message"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"show_sources":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Sources"},"widget_icon":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"Widget Icon"},"widget_avatar":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"Widget Avatar"},"widget_icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Widget Icon Url"},"widget_avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Widget Avatar Url"}},"type":"object","title":"Body_save_widget_settings_v1_agents__agent_id__widget_settings_post"},"Body_update_few_shot_examples_for_db_v1_agents__agent_id__databases__db_id__few_shot_examples_put":{"properties":{"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File"},"few_shot_examples":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Few Shot Examples"}},"type":"object","title":"Body_update_few_shot_examples_for_db_v1_agents__agent_id__databases__db_id__few_shot_examples_put"},"BulkColumnDescriptionsRequest":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID (optional if using auth token)"},"columns":{"items":{"$ref":"#/components/schemas/ColumnDescriptionUpdate"},"type":"array","title":"Columns","description":"List of column descriptions"}},"type":"object","required":["columns"],"title":"BulkColumnDescriptionsRequest","description":"Request model for bulk column description updates"},"BulkDeleteDatabasesRequest":{"properties":{"db_ids":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Db Ids","description":"Database IDs to delete","examples":[["DB_3F9A1C2B","DB_5C1E9A22"]]}},"type":"object","required":["db_ids"],"title":"BulkDeleteDatabasesRequest","description":"Delete multiple databases (and their scoped metadata) in a single action."},"BulkDeleteFewShotRequest":{"properties":{"nl_queries":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Nl Queries","description":"Natural-language queries of the examples to delete","examples":[["Show top customers","count orders"]]},"delete_all":{"type":"boolean","title":"Delete All","description":"Delete ALL few-shot examples for this database","default":false}},"type":"object","title":"BulkDeleteFewShotRequest","description":"Delete multiple few-shot examples by their natural-language query, or all of them."},"ChatRequest":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"End-user ID; honored only for master-key (server-to-server) callers"},"query":{"type":"string","title":"Query","description":"Natural language query"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID (creates new if not provided)"},"debug_info":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Debug Info","description":"Include debug information in response. Omit to use the agent's saved setting."},"chart_output":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Chart Output","description":"Include chart output in response. Omit to use the agent's saved setting."},"allowed_charts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Charts","description":"List of allowed chart types. Omit to use the agent's saved setting."},"follow_up":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Follow Up","description":"If true, also generate exactly two short follow-up questions for this turn. Omit to use the agent's saved setting."}},"type":"object","required":["query"],"title":"ChatRequest","description":"Request model for chat"},"ColumnDescriptionUpdate":{"properties":{"column_name":{"type":"string","title":"Column Name","description":"Name of the column"},"description":{"type":"string","title":"Description","description":"Description of the column"}},"type":"object","required":["column_name","description"],"title":"ColumnDescriptionUpdate","description":"Request model for updating column description"},"DatabaseDescriptionRequest":{"properties":{"description":{"type":"string","minLength":1,"title":"Description","description":"Routing description"}},"type":"object","required":["description"],"title":"DatabaseDescriptionRequest"},"DatabaseStatusRequest":{"properties":{"is_active":{"type":"boolean","title":"Is Active","description":"Enable (true) or disable (false) the database"}},"type":"object","required":["is_active"],"title":"DatabaseStatusRequest"},"DeleteTablesRequest":{"properties":{"table_names":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Table Names","description":"Table names to clear","examples":[["t1","t2"]]},"delete_all":{"type":"boolean","title":"Delete All","description":"Clear ALL table descriptions for this database","default":false}},"type":"object","title":"DeleteTablesRequest","description":"Clear table descriptions by name, or all of them. (Tables are not deleted — only their\ndescription text is cleared.)"},"FeedbackRequest":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID (optional)"},"session_id":{"type":"string","title":"Session Id","description":"Session ID"},"chat_id":{"type":"string","title":"Chat Id","description":"Chat message ID"},"user_query":{"type":"string","title":"User Query","description":"Original user query"},"generated_query":{"type":"string","title":"Generated Query","description":"Generated SQL query"},"label":{"type":"string","title":"Label","description":"Feedback label: 'correct' or 'incorrect'"},"corrected_query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Corrected Query","description":"Corrected SQL query (optional, for incorrect feedback)"}},"type":"object","required":["session_id","chat_id","user_query","generated_query","label"],"title":"FeedbackRequest","description":"Request model for feedback"},"HCProfilingConfigRequest":{"properties":{"low_cardinality_threshold":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Low Cardinality Threshold","default":20},"high_null_threshold":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"High Null Threshold","default":95},"min_avg_text_len_for_hc":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Avg Text Len For Hc","default":2},"sample_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sample Limit","default":5}},"type":"object","title":"HCProfilingConfigRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HighCardinalityColumnItem":{"properties":{"table_name":{"type":"string","title":"Table Name","description":"Table name"},"column_name":{"type":"string","title":"Column Name","description":"Column name"}},"type":"object","required":["table_name","column_name"],"title":"HighCardinalityColumnItem","description":"Single high cardinality column"},"HighCardinalityColumnsRequest":{"properties":{"columns":{"items":{"$ref":"#/components/schemas/HighCardinalityColumnItem"},"type":"array","title":"Columns","description":"List of high cardinality columns"}},"type":"object","required":["columns"],"title":"HighCardinalityColumnsRequest","description":"Request model for high cardinality columns"},"NodeConfig":{"properties":{"node_name":{"type":"string","title":"Node Name","description":"Node name (must be one of: refine, select_and_fewshots, sql_gen, sql_exec, final_answer_node, graph_json_node)"},"provider":{"type":"string","title":"Provider","description":"LLM provider (e.g., openai, anthropic, groq)"},"model":{"type":"string","title":"Model","description":"Model name (e.g., gpt-4o, gpt-4o-mini, claude-3-5-sonnet)"},"temperature":{"anyOf":[{"type":"number","maximum":2,"minimum":0},{"type":"null"}],"title":"Temperature","description":"Temperature for LLM"},"prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt","description":"Custom prompt for this node"}},"type":"object","required":["node_name","provider","model"],"title":"NodeConfig","description":"Node configuration model"},"NodeConfigsRequest":{"properties":{"owner_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Id","description":"User ID (optional if using auth token)"},"configs":{"items":{"$ref":"#/components/schemas/NodeConfig"},"type":"array","title":"Configs","description":"List of node configurations to upsert"}},"type":"object","required":["configs"],"title":"NodeConfigsRequest","description":"Request model for upserting node configurations\n\nNote: owner_id is used as a fallback for user_id if auth token is not provided.\nThis is for backward compatibility. The authenticated user must own the agent."},"PatchAgentRequest":{"properties":{"agent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Name","description":"Name of the agent"},"system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Prompt","description":"System prompt for the agent"},"greet_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Greet Message","description":"Greeting message"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"LLM provider"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model name"},"temperature":{"anyOf":[{"type":"number","maximum":2,"minimum":0},{"type":"null"}],"title":"Temperature","description":"Temperature for LLM"},"show_sql_query":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Sql Query","description":"If true, the chat response will include the generated SQL query"},"show_db_result":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Db Result","description":"If true, the chat response will include the raw DB result rows"}},"type":"object","title":"PatchAgentRequest","description":"Request model for partially updating an agent"},"SessionMessageRequest":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"End-user ID; honored only for master-key (server-to-server) callers"},"query":{"type":"string","title":"Query","description":"Natural language query"},"debug_info":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Debug Info","description":"Include debug information in response. Omit to use the agent's saved setting."},"chart_output":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Chart Output","description":"Include chart output in response. Omit to use the agent's saved setting."},"allowed_charts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Charts","description":"List of allowed chart types. Omit to use the agent's saved setting."},"follow_up":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Follow Up","description":"If true, also generate exactly two short follow-up questions for this turn. Omit to use the agent's saved setting."}},"type":"object","required":["query"],"title":"SessionMessageRequest","description":"Request model for sending message to existing session (session_id comes from URL path)"},"SingleTableUpdateRequest":{"properties":{"description":{"type":"string","title":"Description","description":"Table description"},"is_included":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Included","description":"Whether table is included (optional)"}},"type":"object","required":["description"],"title":"SingleTableUpdateRequest","description":"Request model for updating a single table description"},"SingleTableVisibilityRequest":{"properties":{"is_included":{"type":"boolean","title":"Is Included","description":"Whether table is included"}},"type":"object","required":["is_included"],"title":"SingleTableVisibilityRequest","description":"Request model for single table visibility update"},"TriggerHCProfileRequest":{"properties":{"config":{"anyOf":[{"$ref":"#/components/schemas/HCProfilingConfigRequest"},{"type":"null"}]},"tables":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tables"},"auto_register_hc":{"type":"boolean","title":"Auto Register Hc","default":true}},"type":"object","title":"TriggerHCProfileRequest"},"UpdateAgentRequest":{"properties":{"agent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Name","description":"Name of the agent"},"system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Prompt","description":"System prompt for the agent"},"greet_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Greet Message","description":"Greeting message"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider","description":"LLM provider"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model name"},"temperature":{"anyOf":[{"type":"number","maximum":2,"minimum":0},{"type":"null"}],"title":"Temperature","description":"Temperature for LLM"},"show_sql_query":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Sql Query","description":"If true, the chat response will include the generated SQL query"},"show_db_result":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Db Result","description":"If true, the chat response will include the raw DB result rows"}},"type":"object","title":"UpdateAgentRequest","description":"Request model for updating an agent (full update)"},"UpdateDatabaseRequest":{"properties":{"db_host":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Host"},"db_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Name"},"db_user":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db User"},"db_password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Password"},"db_port":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Db Port"},"db_engine":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Db Engine"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","title":"UpdateDatabaseRequest","description":"Partial update of a database. Any field may be omitted."},"UpdateSessionRequest":{"properties":{"session_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Title","description":"New session title"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID (optional)"}},"type":"object","title":"UpdateSessionRequest","description":"Request model for updating session (PATCH)"},"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"},"WidgetSettings":{"properties":{"heading":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Heading"},"sub_heading":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub Heading"},"greet_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Greet Message"},"color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Color"},"show_sources":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Sources"},"widget_icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Widget Icon"},"widget_avatar":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Widget Avatar"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Owner; omitted for public callers"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At","description":"Omitted for public callers"},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At","description":"Omitted for public callers"}},"type":"object","title":"WidgetSettings","description":"The widget's appearance.\n\nOwner/timestamp fields are absent for anonymous callers — see `PUBLIC_FIELDS` in\n`api/v1/utils/widgets_helper.py`."},"WidgetSettingsResponse":{"properties":{"widget_settings":{"$ref":"#/components/schemas/WidgetSettings"}},"type":"object","required":["widget_settings"],"title":"WidgetSettingsResponse","description":"Response for reading widget settings"},"WidgetSettingsSaveResponse":{"properties":{"message":{"type":"string","title":"Message"},"widget_settings":{"$ref":"#/components/schemas/WidgetSettings"}},"type":"object","required":["message","widget_settings"],"title":"WidgetSettingsSaveResponse","description":"Response for creating or updating widget settings"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}}},"security":[{"APIKeyHeader":[]}]}