{"items":[{"type":"link","link":"/","label":"← Documentation Home"},{"type":"separator","label":true},{"type":"link","fsPath":"gensail-analytics/index.md","metadata":{"type":"markdown"},"label":"Overview","link":"/gensail-analytics","routeSlug":"/gensail-analytics"},{"type":"group","label":"Guides","items":[{"type":"link","fsPath":"gensail-analytics/guides/on-demand-algorithms.md","metadata":{"type":"markdown"},"label":"On-Demand Algorithms","link":"/gensail-analytics/guides/on-demand-algorithms","routeSlug":"/gensail-analytics/guides/on-demand-algorithms"},{"type":"link","fsPath":"gensail-analytics/guides/job-requeue.md","metadata":{"type":"markdown"},"label":"Job Requeue","link":"/gensail-analytics/guides/job-requeue","routeSlug":"/gensail-analytics/guides/job-requeue"},{"type":"link","fsPath":"gensail-analytics/guides/webhook-payloads.md","metadata":{"type":"markdown"},"label":"Webhook Payloads","link":"/gensail-analytics/guides/webhook-payloads","routeSlug":"/gensail-analytics/guides/webhook-payloads"},{"type":"link","fsPath":"gensail-analytics/guides/webhook-authentication.md","metadata":{"type":"markdown"},"label":"Webhook Authentication","link":"/gensail-analytics/guides/webhook-authentication","routeSlug":"/gensail-analytics/guides/webhook-authentication"},{"type":"link","fsPath":"gensail-analytics/guides/webhook-credential-configuration.md","metadata":{"type":"markdown"},"label":"Webhook Credentials","link":"/gensail-analytics/guides/webhook-credential-configuration","routeSlug":"/gensail-analytics/guides/webhook-credential-configuration"}]},{"type":"group","label":"API Reference","items":[{"type":"link","label":"Gensail Analytics API","link":"/gensail-analytics/openapi/openapi","routeSlug":"/gensail-analytics/openapi/openapi"},{"type":"link","label":"Overview","link":"/gensail-analytics/openapi/openapi/section/overview","routeSlug":"/gensail-analytics/openapi/openapi/section/overview"},{"type":"link","label":"Authentication","link":"/gensail-analytics/openapi/openapi/section/authentication","routeSlug":"/gensail-analytics/openapi/openapi/section/authentication"},{"type":"link","label":"Processing Flow","link":"/gensail-analytics/openapi/openapi/section/processing-flow","routeSlug":"/gensail-analytics/openapi/openapi/section/processing-flow"},{"type":"link","label":"Rate Limiting","link":"/gensail-analytics/openapi/openapi/section/rate-limiting","routeSlug":"/gensail-analytics/openapi/openapi/section/rate-limiting"},{"type":"group","label":"Algorithm Runs","link":"/gensail-analytics/openapi/openapi/algorithm-runs","routeSlug":"/gensail-analytics/openapi/openapi/algorithm-runs","items":[{"label":"Submit feedback for algorithm run","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/algorithm-runs/submitfeedback","routeSlug":"/gensail-analytics/openapi/openapi/algorithm-runs/submitfeedback","metadata":{"seo":{"title":"Submit feedback for algorithm run","description":"Submit feedback for an algorithm run's output to improve algorithm accuracy."}},"httpPath":"/api/v1/algorithm-runs/{algorithm_run_id}/feedback"},{"label":"Update existing feedback for algorithm run","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/algorithm-runs/updatefeedback","routeSlug":"/gensail-analytics/openapi/openapi/algorithm-runs/updatefeedback","metadata":{"seo":{"title":"Update existing feedback for algorithm run","description":"Update the active feedback row for an algorithm run."}},"httpPath":"/api/v1/algorithm-runs/{algorithm_run_id}/feedback"},{"label":"Re-deliver Webhook Payload","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/algorithm-runs/redeliverwebhook","routeSlug":"/gensail-analytics/openapi/openapi/algorithm-runs/redeliverwebhook","metadata":{"seo":{"title":"Re-deliver Webhook Payload","description":"Re-deliver the stored webhook payload for an algorithm run."}},"httpPath":"/api/v1/algorithm-runs/{algorithm_run_id}/redeliver-webhook"}]},{"type":"group","label":"Algorithms","link":"/gensail-analytics/openapi/openapi/algorithms","routeSlug":"/gensail-analytics/openapi/openapi/algorithms","items":[{"label":"List algorithms","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/algorithms/listalgorithms","routeSlug":"/gensail-analytics/openapi/openapi/algorithms/listalgorithms","metadata":{"seo":{"title":"List algorithms","description":"List all algorithms available to the authenticated scope."}},"httpPath":"/api/v1/algorithms"},{"label":"Get tenant-safe algorithm metadata","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/algorithms/getalgorithmpublicmetadata","routeSlug":"/gensail-analytics/openapi/openapi/algorithms/getalgorithmpublicmetadata","metadata":{"seo":{"title":"Get tenant-safe algorithm metadata","description":"Return a narrow subset of algorithm metadata accessible to anyauthenticated scope that already has access to the algorithm viapipeline's tenant-scope rules (direct ownership, org→parent-partneruse-by-inheritance, or marketplace-listed; un-owned/unlistedalgorithms are not accessible; restricted-flag honored perlist-endpoint semantics)."}},"httpPath":"/api/v1/algorithms/{algorithm_id}/public-metadata"},{"label":"Get algorithm variables","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/algorithms/getalgorithmvariables","routeSlug":"/gensail-analytics/openapi/openapi/algorithms/getalgorithmvariables","metadata":{"seo":{"title":"Get algorithm variables","description":"Get the configurable variables for an algorithm."}},"httpPath":"/api/v1/algorithms/{algorithm_id}/variables"},{"label":"Update algorithm variables","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/algorithms/updatealgorithmvariables","routeSlug":"/gensail-analytics/openapi/openapi/algorithms/updatealgorithmvariables","metadata":{"seo":{"title":"Update algorithm variables","description":"Update the default values for algorithm variables."}},"httpPath":"/api/v1/algorithms/{algorithm_id}/variables"},{"label":"Copy algorithm","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/algorithms/copyalgorithm","routeSlug":"/gensail-analytics/openapi/openapi/algorithms/copyalgorithm","metadata":{"seo":{"title":"Copy algorithm","description":"Create a copy of an existing algorithm with a new ID."}},"httpPath":"/api/v1/algorithms/{algorithm_id}/copy"},{"label":"Deprecate algorithm","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/algorithms/deprecatealgorithm","routeSlug":"/gensail-analytics/openapi/openapi/algorithms/deprecatealgorithm","metadata":{"seo":{"title":"Deprecate algorithm","description":"Soft-delete an algorithm by setting its deprecated_at timestamp."}},"httpPath":"/api/v1/algorithms/{algorithm_id}/deprecate"},{"label":"Restore deprecated algorithm","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/algorithms/restorealgorithm","routeSlug":"/gensail-analytics/openapi/openapi/algorithms/restorealgorithm","metadata":{"seo":{"title":"Restore deprecated algorithm","description":"Restore a previously deprecated algorithm by clearing its deprecated_at timestamp."}},"httpPath":"/api/v1/algorithms/{algorithm_id}/restore"}]},{"type":"group","label":"Calls","link":"/gensail-analytics/openapi/openapi/calls","routeSlug":"/gensail-analytics/openapi/openapi/calls","items":[{"label":"Submit audio for processing","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/calls/submitaudio","routeSlug":"/gensail-analytics/openapi/openapi/calls/submitaudio","metadata":{"seo":{"title":"Submit audio for processing","description":"Submit an audio recording URL for transcription and AI analysis."}},"httpPath":"/api/v1/calls/audio"},{"label":"Upload audio file for processing","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/calls/submitaudiofile","routeSlug":"/gensail-analytics/openapi/openapi/calls/submitaudiofile","metadata":{"seo":{"title":"Upload audio file for processing","description":"Submit an audio file directly for transcription and AI analysis."}},"httpPath":"/api/v1/calls/audio-file"},{"label":"Submit pre-generated transcript","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/calls/submittranscript","routeSlug":"/gensail-analytics/openapi/openapi/calls/submittranscript","metadata":{"seo":{"title":"Submit pre-generated transcript","description":"Submit a pre-generated transcript for AI analysis (skips transcription)."}},"httpPath":"/api/v1/calls/transcript"},{"label":"List calls for grading","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/calls/listcallsforgrading","routeSlug":"/gensail-analytics/openapi/openapi/calls/listcallsforgrading","metadata":{"seo":{"title":"List calls for grading","description":"Paginated listing of pipeline jobs in a workspace, with thelatest completed Call Review dental algorithm run pre-aggregatedand the active feedback row joined. Supported IDs include the legacydental_grading_* family and stable dental_algorithm_vN versions.Powers the gensail-platform Front Desk \"Call History\" grader page."}},"httpPath":"/api/v1/calls/listing"},{"label":"List full-result Call Review tag facets","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/calls/listcalltagfacets","routeSlug":"/gensail-analytics/openapi/openapi/calls/listcalltagfacets","metadata":{"seo":{"title":"List full-result Call Review tag facets","description":"Returns every visible Status tag and its call count across the fullnon-tag filtered Call Review result set. The current page, page size,offset, and selected tags never narrow the taxonomy."}},"httpPath":"/api/v1/calls/tag-facets"}]},{"type":"group","label":"Config","link":"/gensail-analytics/openapi/openapi/config","routeSlug":"/gensail-analytics/openapi/openapi/config","items":[{"label":"Get config schema","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/config/getconfigschema","routeSlug":"/gensail-analytics/openapi/openapi/config/getconfigschema","metadata":{"seo":{"title":"Get config schema","description":"Get the full config schema filtered by your API key's permission level. Returns section definitions with field types, descriptions, and constraints."}},"httpPath":"/api/v1/config/schema"},{"label":"Get section schema","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/config/getsectionschema","routeSlug":"/gensail-analytics/openapi/openapi/config/getsectionschema","metadata":{"seo":{"title":"Get section schema","description":"Get schema for a specific config section.For scalar sections (e.g., time_zone), the response includes scalar metadatafields (scalar, type, format, max_length, nullable).Returns 404 if section doesn't exist or caller lacks permission."}},"httpPath":"/api/v1/config/schema/{section}"},{"label":"Get workspace config","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/config/getworkspaceconfig","routeSlug":"/gensail-analytics/openapi/openapi/config/getworkspaceconfig","metadata":{"seo":{"title":"Get workspace config","description":"Get workspace's own configuration (not resolved with inheritance)."}},"httpPath":"/api/v1/config/workspaces/{workspace_id}"},{"label":"Replace workspace config","deprecated":false,"httpVerb":"put","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/config/updateworkspaceconfig","routeSlug":"/gensail-analytics/openapi/openapi/config/updateworkspaceconfig","metadata":{"seo":{"title":"Replace workspace config","description":"Replace workspace's entire configuration.Warning: This replaces ALL config sections. To update a single section(e.g., timezone only), use PATCH instead."}},"httpPath":"/api/v1/config/workspaces/{workspace_id}"},{"label":"Update config section","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/config/patchworkspacesection","routeSlug":"/gensail-analytics/openapi/openapi/config/patchworkspacesection","metadata":{"seo":{"title":"Update config section","description":"Update a specific config section for a workspace.Recommended for single-section updates (e.g., setting timezone)."}},"httpPath":"/api/v1/config/workspaces/{workspace_id}/{section}"},{"label":"Get resolved config","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/config/getworkspaceresolvedconfig","routeSlug":"/gensail-analytics/openapi/openapi/config/getworkspaceresolvedconfig","metadata":{"seo":{"title":"Get resolved config","description":"Get fully resolved workspace configuration with inheritance applied.Merges platform → partner → organization → workspace configs."}},"httpPath":"/api/v1/config/workspaces/{workspace_id}/resolved"}]},{"type":"group","label":"Feedback","link":"/gensail-analytics/openapi/openapi/feedback","routeSlug":"/gensail-analytics/openapi/openapi/feedback","items":[{"label":"Submit feedback for algorithm run","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/feedback/submitfeedback","routeSlug":"/gensail-analytics/openapi/openapi/feedback/submitfeedback","metadata":{"seo":{"title":"Submit feedback for algorithm run","description":"Submit feedback for an algorithm run's output to improve algorithm accuracy."}},"httpPath":"/api/v1/algorithm-runs/{algorithm_run_id}/feedback"},{"label":"Update existing feedback for algorithm run","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/feedback/updatefeedback","routeSlug":"/gensail-analytics/openapi/openapi/feedback/updatefeedback","metadata":{"seo":{"title":"Update existing feedback for algorithm run","description":"Update the active feedback row for an algorithm run."}},"httpPath":"/api/v1/algorithm-runs/{algorithm_run_id}/feedback"},{"label":"List workspace feedback","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/feedback/listfeedback","routeSlug":"/gensail-analytics/openapi/openapi/feedback/listfeedback","metadata":{"seo":{"title":"List workspace feedback","description":"List all feedback for the target workspace with optional filtering and pagination."}},"httpPath":"/api/v1/feedback"},{"label":"Get algorithm feedback statistics","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/feedback/getalgorithmstats","routeSlug":"/gensail-analytics/openapi/openapi/feedback/getalgorithmstats","metadata":{"seo":{"title":"Get algorithm feedback statistics","description":"Get feedback statistics for an algorithm including review rates, voting metrics, and per-field correction rates."}},"httpPath":"/api/v1/feedback/algorithms/{algorithm_id}/stats"},{"label":"Export feedback data","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/feedback/exportfeedback","routeSlug":"/gensail-analytics/openapi/openapi/feedback/exportfeedback","metadata":{"seo":{"title":"Export feedback data","description":"Export feedback data for algorithm improvement and analysis."}},"httpPath":"/api/v1/feedback/export"}]},{"type":"group","label":"Health","link":"/gensail-analytics/openapi/openapi/health","routeSlug":"/gensail-analytics/openapi/openapi/health","items":[{"label":"API information","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/health/getroot","routeSlug":"/gensail-analytics/openapi/openapi/health/getroot","metadata":{"seo":{"title":"API information","description":"Returns basic API information and documentation links."}},"httpPath":"/"},{"label":"Health check","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/health/healthcheck","routeSlug":"/gensail-analytics/openapi/openapi/health/healthcheck","metadata":{"seo":{"title":"Health check","description":"Returns the health status of the API. Use this endpoint for load balancer health checks and monitoring."}},"httpPath":"/health"},{"label":"Get system health with components","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/health/getsystemhealth","routeSlug":"/gensail-analytics/openapi/openapi/health/getsystemhealth","metadata":{"seo":{"title":"Get system health with components","description":"Returns detailed system health including individual component status."}},"httpPath":"/api/v1/health"},{"label":"Get integration health status","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/health/getintegrationshealth","routeSlug":"/gensail-analytics/openapi/openapi/health/getintegrationshealth","metadata":{"seo":{"title":"Get integration health status","description":"Returns health status for all configured integrations (CallRail pollers, etc.)"}},"httpPath":"/api/v1/health/integrations"}]},{"type":"group","label":"Jobs","link":"/gensail-analytics/openapi/openapi/jobs","routeSlug":"/gensail-analytics/openapi/openapi/jobs","items":[{"label":"List jobs","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/jobs/listjobs","routeSlug":"/gensail-analytics/openapi/openapi/jobs/listjobs","metadata":{"seo":{"title":"List jobs","description":"List all jobs for your workspace with optional filtering and pagination.All filters are passed as URL query parameters (not a JSON body)."}},"httpPath":"/api/v1/jobs"},{"label":"Lookup job by source IDs","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/jobs/lookupjobbysource","routeSlug":"/gensail-analytics/openapi/openapi/jobs/lookupjobbysource","metadata":{"seo":{"title":"Lookup job by source IDs","description":"Find the most recent original job by external source IDs.All parameters are passed as URL query parameters."}},"httpPath":"/api/v1/jobs/lookup"},{"label":"Retry job by source IDs","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/jobs/retryjobbysource","routeSlug":"/gensail-analytics/openapi/openapi/jobs/retryjobbysource","metadata":{"seo":{"title":"Retry job by source IDs","description":"Find and retry a job using external source IDs instead of internal job ID."}},"httpPath":"/api/v1/jobs/retry"},{"label":"Get job status","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/jobs/getjob","routeSlug":"/gensail-analytics/openapi/openapi/jobs/getjob","metadata":{"seo":{"title":"Get job status","description":"Get detailed status of a specific job including algorithm execution counts."}},"httpPath":"/api/v1/jobs/{job_id}"},{"label":"Get job processing logs","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/jobs/getjoblogs","routeSlug":"/gensail-analytics/openapi/openapi/jobs/getjoblogs","metadata":{"seo":{"title":"Get job processing logs","description":"Get detailed processing logs for a job."}},"httpPath":"/api/v1/jobs/{job_id}/logs"},{"label":"Retry a job","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/jobs/retryjob","routeSlug":"/gensail-analytics/openapi/openapi/jobs/retryjob","metadata":{"seo":{"title":"Retry a job","description":"Retry a job with configurable mode."}},"httpPath":"/api/v1/jobs/{job_id}/retry"},{"label":"Update job status","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/jobs/updatejobstatus","routeSlug":"/gensail-analytics/openapi/openapi/jobs/updatejobstatus","metadata":{"seo":{"title":"Update job status","description":"Update job status to requeue skipped jobs or skip queued jobs."}},"httpPath":"/api/v1/jobs/{job_id}/status"},{"label":"Get algorithm run results","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/jobs/getjobruns","routeSlug":"/gensail-analytics/openapi/openapi/jobs/getjobruns","metadata":{"seo":{"title":"Get algorithm run results","description":"Get all algorithm run results for a job including extracted data."}},"httpPath":"/api/v1/jobs/{job_id}/runs"},{"label":"Run algorithms on existing job","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/jobs/runalgorithmsonjob","routeSlug":"/gensail-analytics/openapi/openapi/jobs/runalgorithmsonjob","metadata":{"seo":{"title":"Run algorithms on existing job","description":"Create an on-demand analysis job to run additional algorithms on an existingjob's transcript."}},"httpPath":"/api/v1/jobs/{job_id}/run-algorithms"}]},{"type":"group","label":"Organizations","link":"/gensail-analytics/openapi/openapi/organizations","routeSlug":"/gensail-analytics/openapi/openapi/organizations","items":[{"label":"List organizations","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/organizations/listorganizations","routeSlug":"/gensail-analytics/openapi/openapi/organizations/listorganizations","metadata":{"seo":{"title":"List organizations","description":"Returns organizations filtered by the authenticated user's scope."}},"httpPath":"/api/v1/organizations"},{"label":"Create organization","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/organizations/createorganization","routeSlug":"/gensail-analytics/openapi/openapi/organizations/createorganization","metadata":{"seo":{"title":"Create organization","description":"Create a new organization in Pipeline."}},"httpPath":"/api/v1/organizations"},{"label":"Get organization by ID","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/organizations/getorganization","routeSlug":"/gensail-analytics/openapi/openapi/organizations/getorganization","metadata":{"seo":{"title":"Get organization by ID","description":"Returns organization details by UUID."}},"httpPath":"/api/v1/organizations/{organization_id}"},{"label":"Update organization","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/organizations/updateorganization","routeSlug":"/gensail-analytics/openapi/openapi/organizations/updateorganization","metadata":{"seo":{"title":"Update organization","description":"Update organization details."}},"httpPath":"/api/v1/organizations/{organization_id}"}]},{"type":"group","label":"Stats","link":"/gensail-analytics/openapi/openapi/stats","routeSlug":"/gensail-analytics/openapi/openapi/stats","items":[{"label":"Get aggregate job statistics","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/stats/getstats","routeSlug":"/gensail-analytics/openapi/openapi/stats/getstats","metadata":{"seo":{"title":"Get aggregate job statistics","description":"Returns aggregate job statistics for the specified time period."}},"httpPath":"/api/v1/stats"},{"label":"Get daily job statistics","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/stats/getdailystats","routeSlug":"/gensail-analytics/openapi/openapi/stats/getdailystats","metadata":{"seo":{"title":"Get daily job statistics","description":"Returns job statistics broken down by day for the specified number of days."}},"httpPath":"/api/v1/stats/daily"},{"label":"Get call duration distribution","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/stats/getdurationdistribution","routeSlug":"/gensail-analytics/openapi/openapi/stats/getdurationdistribution","metadata":{"seo":{"title":"Get call duration distribution","description":"Returns the distribution of calls by duration, bucketed into configurable intervals."}},"httpPath":"/api/v1/stats/duration-distribution"},{"label":"Get job statistics by organization","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/stats/getstatsbyorganization","routeSlug":"/gensail-analytics/openapi/openapi/stats/getstatsbyorganization","metadata":{"seo":{"title":"Get job statistics by organization","description":"Returns job statistics grouped by organization."}},"httpPath":"/api/v1/stats/by-organization"},{"label":"Get daily call/duration trends","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/stats/gettrends","routeSlug":"/gensail-analytics/openapi/openapi/stats/gettrends","metadata":{"seo":{"title":"Get daily call/duration trends","description":"Returns daily trend data for jobs over a date range."}},"httpPath":"/api/v1/stats/trends"},{"label":"Get daily feedback-coverage trends","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/stats/getfeedbacktrends","routeSlug":"/gensail-analytics/openapi/openapi/stats/getfeedbacktrends","metadata":{"seo":{"title":"Get daily feedback-coverage trends","description":"Per user-local day, returns how many calls were processed (completed) andhow many of those have received feedback. Powers the partner \"AlgorithmRun Feedback\" coverage chart."}},"httpPath":"/api/v1/stats/feedback-trends"}]},{"type":"group","label":"Workspaces","link":"/gensail-analytics/openapi/openapi/workspaces","routeSlug":"/gensail-analytics/openapi/openapi/workspaces","items":[{"label":"List workspaces","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/workspaces/listworkspaces","routeSlug":"/gensail-analytics/openapi/openapi/workspaces/listworkspaces","metadata":{"seo":{"title":"List workspaces","description":"Returns workspaces filtered by the authenticated user's scope."}},"httpPath":"/api/v1/workspaces"},{"label":"Create workspace","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/workspaces/createworkspace","routeSlug":"/gensail-analytics/openapi/openapi/workspaces/createworkspace","metadata":{"seo":{"title":"Create workspace","description":"Create a new workspace in Pipeline."}},"httpPath":"/api/v1/workspaces"},{"label":"Get workspace by ID","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/workspaces/getworkspace","routeSlug":"/gensail-analytics/openapi/openapi/workspaces/getworkspace","metadata":{"seo":{"title":"Get workspace by ID","description":"Returns workspace details by UUID."}},"httpPath":"/api/v1/workspaces/{workspace_id}"},{"label":"Update workspace","deprecated":false,"httpVerb":"patch","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/workspaces/updateworkspace","routeSlug":"/gensail-analytics/openapi/openapi/workspaces/updateworkspace","metadata":{"seo":{"title":"Update workspace","description":"Update workspace details."}},"httpPath":"/api/v1/workspaces/{workspace_id}"}]},{"type":"group","label":"Analytics","link":"/gensail-analytics/openapi/openapi/analytics","routeSlug":"/gensail-analytics/openapi/openapi/analytics","items":[{"label":"Shared KPI band and all compatible trend series","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/analytics/getanalyticsoverviewquery","routeSlug":"/gensail-analytics/openapi/openapi/analytics/getanalyticsoverviewquery","metadata":{"seo":{"title":"Shared KPI band and all compatible trend series","description":"Uses the SummaryQuery body and existing summary authorization, date, timezone and attribution rules. Attribution errors use {detail: {error, message, details}}: INVALID_ATTRIBUTION_GROUPS, INVALID_ATTRIBUTION_SELECTION (400), ATTRIBUTION_GROUP_COLLISION (409), ATTRIBUTION_PAYLOAD_TOO_LARGE (413)."}},"httpPath":"/api/v1/analytics/overview/query"},{"label":"Analytics KPI band (summary)","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/analytics/getanalyticssummary","routeSlug":"/gensail-analytics/openapi/openapi/analytics/getanalyticssummary","metadata":{"seo":{"title":"Analytics KPI band (summary)","description":"Returns the analytics dashboard KPI band for a single workspace over alocal calendar date range, with prior-period deltas and coverage counts."}},"httpPath":"/api/v1/analytics/summary"},{"label":"Analytics KPI band (summary)","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/analytics/getanalyticssummaryquery","routeSlug":"/gensail-analytics/openapi/openapi/analytics/getanalyticssummaryquery","metadata":{"seo":{"title":"Analytics KPI band (summary)","description":"Attribution errors use {detail: {error, message, details}}; criteria errors areINVALID_ATTRIBUTION_GROUPS or INVALID_ATTRIBUTION_SELECTION (400),ATTRIBUTION_GROUP_COLLISION (409), or ATTRIBUTION_PAYLOAD_TOO_LARGE (413)."}},"httpPath":"/api/v1/analytics/summary/query"},{"label":"Reason-Not-Booked Pareto + barrier deep-dive","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/analytics/getanalyticsrnb","routeSlug":"/gensail-analytics/openapi/openapi/analytics/getanalyticsrnb","metadata":{"seo":{"title":"Reason-Not-Booked Pareto + barrier deep-dive","description":"Returns the Reason-Not-Booked (RNB) analysis for a single workspace over alocal calendar date range. The universe is the window's calls whoseselected call_intent_classifier_v3 run has booking_outcome = not_booked."}},"httpPath":"/api/v1/analytics/rnb"},{"label":"Daily-bucketed trend series for a named metric","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/analytics/getanalyticstrends","routeSlug":"/gensail-analytics/openapi/openapi/analytics/getanalyticstrends","metadata":{"seo":{"title":"Daily-bucketed trend series for a named metric","description":"Returns a daily series for one metric over a local calendar date range,plus the aligned prior-period series."}},"httpPath":"/api/v1/analytics/trends"},{"label":"Daily-bucketed trend series for a named metric","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/analytics/getanalyticstrendsquery","routeSlug":"/gensail-analytics/openapi/openapi/analytics/getanalyticstrendsquery","metadata":{"seo":{"title":"Daily-bucketed trend series for a named metric","description":"Attribution errors use {detail: {error, message, details}}; criteria errors areINVALID_ATTRIBUTION_GROUPS or INVALID_ATTRIBUTION_SELECTION (400),ATTRIBUTION_GROUP_COLLISION (409), or ATTRIBUTION_PAYLOAD_TOO_LARGE (413)."}},"httpPath":"/api/v1/analytics/trends/query"},{"label":"All-calls browse table (paginated)","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/analytics/getanalyticscalls","routeSlug":"/gensail-analytics/openapi/openapi/analytics/getanalyticscalls","metadata":{"seo":{"title":"All-calls browse table (paginated)","description":"Returns the paginated all-calls browse table for a single workspace over alocal calendar date range — every call in the window, one row per call,most-recent first. Each row deep-links to the Call Grading detail."}},"httpPath":"/api/v1/analytics/calls"},{"label":"All-calls browse table (paginated)","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/analytics/getanalyticscallsquery","routeSlug":"/gensail-analytics/openapi/openapi/analytics/getanalyticscallsquery","metadata":{"seo":{"title":"All-calls browse table (paginated)","description":"Attribution errors use {detail: {error, message, details}}; criteria errors areINVALID_ATTRIBUTION_GROUPS or INVALID_ATTRIBUTION_SELECTION (400),ATTRIBUTION_GROUP_COLLISION (409), or ATTRIBUTION_PAYLOAD_TOO_LARGE (413)."}},"httpPath":"/api/v1/analytics/calls/query"},{"label":"Reconciled selected v3 fields for a single call","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/analytics/getanalyticscallselected","routeSlug":"/gensail-analytics/openapi/openapi/analytics/getanalyticscallselected","metadata":{"seo":{"title":"Reconciled selected v3 fields for a single call","description":"Returns the reconciled selected call_intent_classifier_v3 fields for asingle call (root job) — primary_intent, action_priority, andfollow_up_tasks, plus canonical source_direction. Powers theplatform's ticket \"Add to follow-ups\" create. This ID-selected lookupintentionally has no direction query parameter."}},"httpPath":"/api/v1/analytics/calls/{root_job_id}/selected"},{"label":"Follow-up queue (high-intent action list, paginated)","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/analytics/getanalyticsfollowups","routeSlug":"/gensail-analytics/openapi/openapi/analytics/getanalyticsfollowups","metadata":{"seo":{"title":"Follow-up queue (high-intent action list, paginated)","description":"Returns the paginated, priority-ordered follow-up queue for a singleworkspace over a local calendar date range — the high-intent subset of theall-calls table that needs action."}},"httpPath":"/api/v1/analytics/follow-ups"},{"label":"Follow-up queue (high-intent action list, paginated)","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/analytics/getanalyticsfollowupsquery","routeSlug":"/gensail-analytics/openapi/openapi/analytics/getanalyticsfollowupsquery","metadata":{"seo":{"title":"Follow-up queue (high-intent action list, paginated)","description":"Attribution errors use {detail: {error, message, details}}; criteria errors areINVALID_ATTRIBUTION_GROUPS or INVALID_ATTRIBUTION_SELECTION (400),ATTRIBUTION_GROUP_COLLISION (409), or ATTRIBUTION_PAYLOAD_TOO_LARGE (413)."}},"httpPath":"/api/v1/analytics/follow-ups/query"},{"label":"Follow-up queue rows for an explicit set of calls (G.3 batch hydration)","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/analytics/getanalyticsfollowupsbyids","routeSlug":"/gensail-analytics/openapi/openapi/analytics/getanalyticsfollowupsbyids","metadata":{"seo":{"title":"Follow-up queue rows for an explicit set of calls (G.3 batch hydration)","description":"Returns follow-up-queue-shaped rows for an explicit set of root job ids— no date window, no pagination. Powers the platform's my-follow-upsread: open tickets assigned to a user reference calls by root job idwith no date bound, so the windowed /follow-ups queue can't servethem."}},"httpPath":"/api/v1/analytics/follow-ups/by-ids"},{"label":"Coaching opportunities (worst-graded calls, paginated)","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/analytics/getanalyticscoachingopportunities","routeSlug":"/gensail-analytics/openapi/openapi/analytics/getanalyticscoachingopportunities","metadata":{"seo":{"title":"Coaching opportunities (worst-graded calls, paginated)","description":"Returns the worst-graded front-desk-applicable calls for a singleworkspace over a local calendar date range, so a manager can jumpstraight into Call Review on them (each row carries thepipeline_job_id the Call Review deep-link uses)."}},"httpPath":"/api/v1/analytics/coaching-opportunities"},{"label":"Per-receptionist performance (coverage-gated)","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/analytics/getanalyticsbyreceptionist","routeSlug":"/gensail-analytics/openapi/openapi/analytics/getanalyticsbyreceptionist","metadata":{"seo":{"title":"Per-receptionist performance (coverage-gated)","description":"Returns per-receptionist performance for a single workspace over a localcalendar date range, with a SERVER-evaluated attribution coverage gate."}},"httpPath":"/api/v1/analytics/by-receptionist"},{"label":"Per-receptionist performance (coverage-gated)","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/analytics/getanalyticsbyreceptionistquery","routeSlug":"/gensail-analytics/openapi/openapi/analytics/getanalyticsbyreceptionistquery","metadata":{"seo":{"title":"Per-receptionist performance (coverage-gated)","description":"Attribution errors use {detail: {error, message, details}}; criteria errors areINVALID_ATTRIBUTION_GROUPS or INVALID_ATTRIBUTION_SELECTION (400),ATTRIBUTION_GROUP_COLLISION (409), or ATTRIBUTION_PAYLOAD_TOO_LARGE (413)."}},"httpPath":"/api/v1/analytics/by-receptionist/query"},{"label":"Validate Analytics Attribution","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/analytics/validate_analytics_attribution_api_v1_analytics_attribution_validate_post","routeSlug":"/gensail-analytics/openapi/openapi/analytics/validate_analytics_attribution_api_v1_analytics_attribution_validate_post","metadata":{"seo":{"title":"Validate Analytics Attribution","description":"Validate Analytics Attribution"}},"httpPath":"/api/v1/analytics/attribution/validate"},{"label":"Get Analytics Phone Users","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/gensail-analytics/openapi/openapi/analytics/get_analytics_phone_users_api_v1_analytics_phone_users_get","routeSlug":"/gensail-analytics/openapi/openapi/analytics/get_analytics_phone_users_api_v1_analytics_phone_users_get","metadata":{"seo":{"title":"Get Analytics Phone Users","description":"Get Analytics Phone Users"}},"httpPath":"/api/v1/analytics/phone-users"}]}]}]}