Karumi Public API

Read-only REST API over Karumi session data — demo sessions and their full transcripts, per-session insights, session recordings, meeting events, aggregate and time-series analytics, and the targets (demo projects) with their user journeys. OpenAPI 3.1.0, JSON, limit/offset pagination, authenticated with an organization API key sent in the X-Api-Key header.

OpenAPI Specification

karumi-public-api-openapi.json Raw ↑
{"openapi":"3.1.0","info":{"title":"Karumi Public API","description":"Public API for accessing Karumi session data. Authenticate using the X-Api-Key header with your organization's API key.","version":"1.0.0"},"paths":{"/sessions":{"get":{"tags":["Sessions"],"summary":"List Sessions","description":"List sessions for the organization.\n\nReturns paginated sessions with optional filtering by project, status, and date range.","operationId":"list_sessions_sessions_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter by project ID","title":"Project Id"},"description":"Filter by project ID"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status","title":"Status"},"description":"Filter by status"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter sessions after this date","title":"Start Date"},"description":"Filter sessions after this date"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter sessions before this date","title":"End Date"},"description":"Filter sessions before this date"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Number of sessions to return","default":100,"title":"Limit"},"description":"Number of sessions to return"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of sessions to skip","default":0,"title":"Offset"},"description":"Number of sessions to skip"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedSessions"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sessions/meeting-events":{"get":{"tags":["Sessions"],"summary":"List Meeting Events","description":"List meeting CTA clicks and bookings across the organization's sessions.\n\nEach event is returned with the demo visitor's email so the data can be\ncross-referenced against your own booking records. Filter by project,\nevent type, and date range to build per-day click/booking reports.","operationId":"list_meeting_events_sessions_meeting_events_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter by project ID","title":"Project Id"},"description":"Filter by project ID"},{"name":"event_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by event type: 'meeting_cta_clicked' or 'meeting_booked'","title":"Event Type"},"description":"Filter by event type: 'meeting_cta_clicked' or 'meeting_booked'"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter events after this date","title":"Start Date"},"description":"Filter events after this date"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter events before this date","title":"End Date"},"description":"Filter events before this date"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Number of events to return","default":100,"title":"Limit"},"description":"Number of events to return"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of events to skip","default":0,"title":"Offset"},"description":"Number of events to skip"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedSessionEvents"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sessions/{session_id}":{"get":{"tags":["Sessions"],"summary":"Get Session","description":"Get a session by ID with optional transcript messages.\n\nOnly returns text messages from user and assistant (excludes system messages,\ntool calls, and other internal message types).\n\nThe `recording_url` field contains a URL to download the session recording.\nThe field is null if the session is still in progress, the recording is\nstill processing, or the recording is unavailable.","operationId":"get_session_sessions__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Session Id"}},{"name":"include_messages","in":"query","required":false,"schema":{"type":"boolean","description":"Include transcript messages in response","default":false,"title":"Include Messages"},"description":"Include transcript messages in response"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSessionWithMessages"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sessions/{session_id}/insights":{"get":{"tags":["Sessions"],"summary":"Get Session Insights","description":"Get AI-extracted insights for a session.\n\nReturns structured insights including prospect context, questions asked,\nuse cases discussed, and recommended next steps.","operationId":"get_session_insights_sessions__session_id__insights_get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Session Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSessionInsights"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sessions/{session_id}/recording":{"get":{"tags":["Sessions"],"summary":"Download Session Recording","description":"Download the session recording as an MP4 file.\n\nThis endpoint streams the recording directly with Content-Disposition: attachment,\nforcing a download rather than playing in the browser.","operationId":"download_session_recording_sessions__session_id__recording_get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Session Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/analytics":{"get":{"tags":["Analytics"],"summary":"Get Analytics","description":"Get aggregated analytics for the organization.\n\nReturns session counts, duration distributions, rating distributions,\nstatus breakdowns, intent distributions, repeat visitor data, and version metrics.","operationId":"get_analytics_analytics_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter by project ID","title":"Project Id"},"description":"Filter by project ID"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter sessions after this date","title":"Start Date"},"description":"Filter sessions after this date"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter sessions before this date","title":"End Date"},"description":"Filter sessions before this date"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicAnalytics"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/analytics/timeline":{"get":{"tags":["Analytics"],"summary":"Get Analytics Timeline","description":"Get time-series analytics data.\n\nReturns session counts, error counts, average duration, and goals\ngrouped by the specified time granularity.","operationId":"get_analytics_timeline_analytics_timeline_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter by project ID","title":"Project Id"},"description":"Filter by project ID"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter sessions after this date","title":"Start Date"},"description":"Filter sessions after this date"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter sessions before this date","title":"End Date"},"description":"Filter sessions before this date"},{"name":"granularity","in":"query","required":false,"schema":{"enum":["day","week","month"],"type":"string","description":"Time grouping granularity","default":"day","title":"Granularity"},"description":"Time grouping granularity"},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by agent version","title":"Version"},"description":"Filter by agent version"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTimelineAnalytics"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/targets":{"get":{"tags":["Targets"],"summary":"List Targets","description":"List all targets (demo products) for the organization.\n\nReturns targets across all projects in the organization.","operationId":"list_targets_targets_get","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicTarget"},"title":"Response List Targets Targets Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/targets/{target_id}":{"get":{"tags":["Targets"],"summary":"Get Target","description":"Get a target by ID with its user journeys.\n\nReturns the target and all associated user journeys/goals.","operationId":"get_target_targets__target_id__get","parameters":[{"name":"target_id","in":"path","required":true,"schema":{"type":"string","title":"Target Id"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicTargetWithJourneys"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"PaginatedSessionEvents":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicSessionEvent"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"PaginatedSessionEvents","description":"Paginated response for the session events list."},"PaginatedSessions":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicSession"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"PaginatedSessions","description":"Paginated response for session list."},"PublicAnalytics":{"properties":{"minutes_distribution":{"$ref":"#/components/schemas/PublicAnalyticsDistribution"},"rating_distribution":{"$ref":"#/components/schemas/PublicAnalyticsDistribution"},"status_distribution":{"$ref":"#/components/schemas/PublicAnalyticsDistribution"},"intent_distribution":{"$ref":"#/components/schemas/PublicAnalyticsDistribution"},"repeat_visitors":{"items":{"$ref":"#/components/schemas/PublicRepeatVisitorBucket"},"type":"array","title":"Repeat Visitors"},"version_comparison":{"items":{"$ref":"#/components/schemas/PublicVersionMetrics"},"type":"array","title":"Version Comparison"},"total_sessions":{"type":"integer","title":"Total Sessions"},"avg_duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Duration Seconds"},"total_goals_reached":{"type":"integer","title":"Total Goals Reached","default":0}},"type":"object","required":["minutes_distribution","rating_distribution","status_distribution","intent_distribution","repeat_visitors","version_comparison","total_sessions"],"title":"PublicAnalytics","description":"Analytics data for the organization."},"PublicAnalyticsDistribution":{"properties":{"buckets":{"items":{"$ref":"#/components/schemas/PublicDistributionBucket"},"type":"array","title":"Buckets"},"total_count":{"type":"integer","title":"Total Count"}},"type":"object","required":["buckets","total_count"],"title":"PublicAnalyticsDistribution","description":"Distribution data for a single metric."},"PublicDistributionBucket":{"properties":{"label":{"type":"string","title":"Label"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["label","count"],"title":"PublicDistributionBucket","description":"A single bucket in a distribution."},"PublicInsight":{"properties":{"key":{"type":"string","title":"Key"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"status":{"type":"string","title":"Status"},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence"},"value":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Value"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"evidence":{"items":{"$ref":"#/components/schemas/PublicInsightEvidence"},"type":"array","title":"Evidence"}},"type":"object","required":["key","status"],"title":"PublicInsight","description":"AI-extracted insight for public API."},"PublicInsightEvidence":{"properties":{"text":{"type":"string","title":"Text"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp"}},"type":"object","required":["text"],"title":"PublicInsightEvidence","description":"Evidence item for a public insight."},"PublicRepeatVisitorBucket":{"properties":{"demo_count":{"type":"integer","title":"Demo Count"},"visitor_count":{"type":"integer","title":"Visitor Count"}},"type":"object","required":["demo_count","visitor_count"],"title":"PublicRepeatVisitorBucket","description":"Count of visitors by number of demos taken."},"PublicSession":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"project_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Project Id"},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Seconds"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"intent_rate":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Intent Rate"},"intent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intent Name"},"labels":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Labels"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"tracked_journeys":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tracked Journeys"},"goals":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Goals","description":"IDs of goal journeys completed in this session"}},"type":"object","required":["id","project_id","duration_seconds","status","created_at","email","summary","intent_rate","intent_name","labels","metadata","tracked_journeys"],"title":"PublicSession","description":"Session data exposed via public API."},"PublicSessionEvent":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"session_id":{"type":"string","format":"uuid","title":"Session Id"},"project_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Project Id"},"event_type":{"type":"string","title":"Event Type","description":"Event type, e.g. 'meeting_cta_clicked' or 'meeting_booked'"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"The meeting link the event relates to"},"visitor_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visitor Email","description":"Email of the demo visitor, if known"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Event-specific data. For 'meeting_booked': booked contact (first/last name, email), slot timerange, organizer name, and link type."},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","session_id","project_id","event_type","created_at"],"title":"PublicSessionEvent","description":"A per-session demo event (meeting CTA click / booking) for the public API."},"PublicSessionInsights":{"properties":{"session_id":{"type":"string","format":"uuid","title":"Session Id"},"status":{"type":"string","title":"Status"},"generated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Generated At"},"insights":{"items":{"$ref":"#/components/schemas/PublicInsight"},"type":"array","title":"Insights"}},"type":"object","required":["session_id","status"],"title":"PublicSessionInsights","description":"Session insights response for public API."},"PublicSessionWithMessages":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"project_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Project Id"},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Seconds"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"intent_rate":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Intent Rate"},"intent_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intent Name"},"labels":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Labels"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"tracked_journeys":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tracked Journeys"},"goals":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Goals","description":"IDs of goal journeys completed in this session"},"messages":{"items":{"$ref":"#/components/schemas/PublicTranscriptMessage"},"type":"array","title":"Messages"},"recording_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recording Url","description":"Presigned URL to download or stream the session recording. Expires in 1 hour - fetch a fresh URL if expired. Null if: session is still in progress, recording is processing, or recording is unavailable."}},"type":"object","required":["id","project_id","duration_seconds","status","created_at","email","summary","intent_rate","intent_name","labels","metadata","tracked_journeys"],"title":"PublicSessionWithMessages","description":"Session with optional transcript messages."},"PublicTarget":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"project_id":{"type":"string","format":"uuid","title":"Project Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","description","project_id","created_at"],"title":"PublicTarget","description":"Target (demo product) exposed via public API."},"PublicTargetWithJourneys":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"project_id":{"type":"string","format":"uuid","title":"Project Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"journeys":{"items":{"$ref":"#/components/schemas/PublicUserJourney"},"type":"array","title":"Journeys"}},"type":"object","required":["id","name","description","project_id","created_at"],"title":"PublicTargetWithJourneys","description":"Target with its user journeys."},"PublicTimelineAnalytics":{"properties":{"data_points":{"items":{"$ref":"#/components/schemas/PublicTimelineDataPoint"},"type":"array","title":"Data Points"},"granularity":{"type":"string","title":"Granularity"},"versions":{"items":{"type":"integer"},"type":"array","title":"Versions"}},"type":"object","required":["data_points","granularity","versions"],"title":"PublicTimelineAnalytics","description":"Time-series analytics data."},"PublicTimelineDataPoint":{"properties":{"date":{"type":"string","format":"date-time","title":"Date"},"session_count":{"type":"integer","title":"Session Count"},"error_count":{"type":"integer","title":"Error Count"},"avg_duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Duration Seconds"},"goals_count":{"type":"integer","title":"Goals Count"},"version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Version"}},"type":"object","required":["date","session_count","error_count","goals_count"],"title":"PublicTimelineDataPoint","description":"Single data point in the analytics timeline."},"PublicTranscriptMessage":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"speaker":{"type":"string","enum":["user","assistant"],"title":"Speaker"},"content":{"type":"string","title":"Content"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","speaker","content","created_at"],"title":"PublicTranscriptMessage","description":"Transcript message for public API (text only)."},"PublicUserJourney":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_goal":{"type":"boolean","title":"Is Goal"},"is_tracked":{"type":"boolean","title":"Is Tracked"},"order":{"type":"integer","title":"Order"}},"type":"object","required":["id","name","description","is_goal","is_tracked","order"],"title":"PublicUserJourney","description":"User journey/goal exposed via public API."},"PublicVersionMetrics":{"properties":{"version":{"type":"integer","title":"Version"},"session_count":{"type":"integer","title":"Session Count"},"completed_count":{"type":"integer","title":"Completed Count"},"email_rejected_count":{"type":"integer","title":"Email Rejected Count"},"error_count":{"type":"integer","title":"Error Count"},"goals_achieved_count":{"type":"integer","title":"Goals Achieved Count"}},"type":"object","required":["version","session_count","completed_count","email_rejected_count","error_count","goals_achieved_count"],"title":"PublicVersionMetrics","description":"Metrics for a specific agent version."},"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"}}},"servers":[{"url":"/api/v1"}]}