Amigo · Schema

TraceAnalysisResponse

Deep call understanding produced by the Amigo intelligence pipeline. Analyzes the raw call audio to identify emotional dynamics, key decision moments, and actionable coaching - understanding that exceeds what either participant had during the call itself. **Latency note**: This endpoint reads from the analytics data warehouse. Expect 500ms-2s response time, not sub-10ms like transactional endpoints.

CompanyArtificial IntelligenceHealthcareAI AgentsVoiceClinicalConversational AIFHIRElectronic Health RecordsHIPAA

Properties

Name Type Description
call_sid string Call identifier (Twilio call SID or direct session ID)
status string ready: analysis complete. pending: call completed, analysis processing. unavailable: analysis not possible for this call.
summary object 2-3 sentence narrative of the call - the emotional story, not just what happened
outcome object Overall call outcome
key_moment_count integer Number of key decision moments identified (typically 3-8)
key_moments array Key decision points with causal attribution to audio inputs
emotional_arc object Caller emotional trajectory as a readable sequence (e.g. 'curious -> confused -> frustrated -> relieved')
emotional_shifts array Critical emotional state changes detected in the caller's voice
interaction_dynamics object System-level conversation flow analysis
coaching array Specific, actionable agent improvements tied to exact moments in this call
counterfactuals array Alternative actions that would have meaningfully changed the outcome
deep_understanding object Synthesis of why this call went the way it did - combining audio perception with execution data
signal_response_alignment array Per-signal alignment analysis: whether the agent's response matched each salient signal
missed_opportunities array Moments where the agent could have taken a better action
emergent_patterns array Cross-call or cross-turn patterns detected by the analysis
call_entity_id object UUID string of the associated world.entities_synced call row (if resolved)
computed_at object When the analysis was produced by the pipeline
View JSON Schema on GitHub

JSON Schema

amigo-trace-analysis-response-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amigo/main/json-schema/amigo-trace-analysis-response-schema.json",
  "title": "TraceAnalysisResponse",
  "description": "Deep call understanding produced by the Amigo intelligence pipeline.\n\nAnalyzes the raw call audio to identify emotional dynamics, key decision\nmoments, and actionable coaching - understanding that exceeds what either\nparticipant had during the call itself.\n\n**Latency note**: This endpoint reads from the analytics data warehouse.\nExpect 500ms-2s response time, not sub-10ms like transactional endpoints.",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/amigo-calls-api-openapi.yml#/components/schemas/TraceAnalysisResponse",
  "properties": {
    "call_sid": {
      "type": "string",
      "maxLength": 128,
      "minLength": 1,
      "title": "Call Sid",
      "description": "Call identifier (Twilio call SID or direct session ID)"
    },
    "status": {
      "type": "string",
      "enum": [
        "ready",
        "pending",
        "unavailable"
      ],
      "title": "Status",
      "description": "ready: analysis complete. pending: call completed, analysis processing. unavailable: analysis not possible for this call.",
      "default": "ready"
    },
    "summary": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Summary",
      "description": "2-3 sentence narrative of the call - the emotional story, not just what happened"
    },
    "outcome": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "succeeded",
            "partially",
            "failed",
            "abandoned"
          ]
        },
        {
          "type": "null"
        }
      ],
      "title": "Outcome",
      "description": "Overall call outcome"
    },
    "key_moment_count": {
      "type": "integer",
      "minimum": 0.0,
      "title": "Key Moment Count",
      "description": "Number of key decision moments identified (typically 3-8)",
      "default": 0
    },
    "key_moments": {
      "items": {
        "$ref": "#/$defs/TraceKeyMoment"
      },
      "type": "array",
      "maxItems": 100,
      "title": "Key Moments",
      "description": "Key decision points with causal attribution to audio inputs"
    },
    "emotional_arc": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Emotional Arc",
      "description": "Caller emotional trajectory as a readable sequence (e.g. 'curious -> confused -> frustrated -> relieved')"
    },
    "emotional_shifts": {
      "items": {
        "$ref": "#/$defs/EmotionalShift"
      },
      "type": "array",
      "maxItems": 100,
      "title": "Emotional Shifts",
      "description": "Critical emotional state changes detected in the caller's voice"
    },
    "interaction_dynamics": {
      "anyOf": [
        {
          "$ref": "#/$defs/InteractionDynamics"
        },
        {
          "type": "null"
        }
      ],
      "description": "System-level conversation flow analysis"
    },
    "coaching": {
      "items": {
        "$ref": "#/$defs/CoachingItem"
      },
      "type": "array",
      "maxItems": 50,
      "title": "Coaching",
      "description": "Specific, actionable agent improvements tied to exact moments in this call"
    },
    "counterfactuals": {
      "items": {
        "$ref": "#/$defs/Counterfactual"
      },
      "type": "array",
      "maxItems": 50,
      "title": "Counterfactuals",
      "description": "Alternative actions that would have meaningfully changed the outcome"
    },
    "deep_understanding": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 10000,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Deep Understanding",
      "description": "Synthesis of why this call went the way it did - combining audio perception with execution data"
    },
    "signal_response_alignment": {
      "items": {
        "$ref": "#/$defs/SignalResponseAlignment"
      },
      "type": "array",
      "maxItems": 50,
      "title": "Signal Response Alignment",
      "description": "Per-signal alignment analysis: whether the agent's response matched each salient signal"
    },
    "missed_opportunities": {
      "items": {
        "type": "string",
        "maxLength": 2000,
        "minLength": 1
      },
      "type": "array",
      "maxItems": 50,
      "title": "Missed Opportunities",
      "description": "Moments where the agent could have taken a better action"
    },
    "emergent_patterns": {
      "items": {
        "type": "string",
        "maxLength": 2000,
        "minLength": 1
      },
      "type": "array",
      "maxItems": 50,
      "title": "Emergent Patterns",
      "description": "Cross-call or cross-turn patterns detected by the analysis"
    },
    "call_entity_id": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid"
        },
        {
          "type": "null"
        }
      ],
      "title": "Call Entity Id",
      "description": "UUID string of the associated world.entities_synced call row (if resolved)"
    },
    "computed_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Computed At",
      "description": "When the analysis was produced by the pipeline"
    }
  },
  "type": "object",
  "required": [
    "call_sid"
  ],
  "$defs": {
    "CoachingItem": {
      "properties": {
        "moment_timestamp": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 86400.0,
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Moment Timestamp",
          "description": "Position in the recording this coaching applies to (seconds)"
        },
        "observation": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1,
          "title": "Observation",
          "description": "What was observed in the audio at this moment"
        },
        "recommendation": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1,
          "title": "Recommendation",
          "description": "Specific improvement the agent should make"
        },
        "expected_impact": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000,
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Expected Impact",
          "description": "How this improvement would change the interaction"
        }
      },
      "type": "object",
      "required": [
        "observation",
        "recommendation"
      ],
      "title": "CoachingItem",
      "description": "A specific, actionable improvement tied to an exact moment in the call."
    },
    "Counterfactual": {
      "properties": {
        "timestamp_seconds": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 86400.0,
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Timestamp Seconds",
          "description": "When the alternative action was available (seconds)"
        },
        "actual": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1,
          "title": "Actual",
          "description": "What the agent actually did"
        },
        "alternative": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1,
          "title": "Alternative",
          "description": "What it could have done instead"
        },
        "predicted_impact": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1,
          "title": "Predicted Impact",
          "description": "How the call would have gone differently"
        }
      },
      "type": "object",
      "required": [
        "actual",
        "alternative",
        "predicted_impact"
      ],
      "title": "Counterfactual",
      "description": "An alternative action that would have meaningfully changed the call outcome."
    },
    "DecisionFactor": {
      "properties": {
        "factor": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1,
          "title": "Factor",
          "description": "What specifically drove this decision - exact words heard or tone described"
        },
        "source_type": {
          "type": "string",
          "title": "Source Type",
          "description": "Category of the audio input"
        }
      },
      "type": "object",
      "required": [
        "factor",
        "source_type"
      ],
      "title": "DecisionFactor",
      "description": "A specific audio input that drove an agent decision."
    },
    "EmotionalShift": {
      "properties": {
        "timestamp_seconds": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 86400.0,
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Timestamp Seconds",
          "description": "When the shift occurred (seconds from start)"
        },
        "from_state": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 500,
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "From State",
          "description": "Emotional state before the shift"
        },
        "to_state": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 500,
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "To State",
          "description": "Emotional state after the shift"
        },
        "trigger": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000,
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Trigger",
          "description": "What caused the shift - exact words and tone"
        },
        "agent_awareness": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000,
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Agent Awareness",
          "description": "Whether the agent noticed and responded to this shift"
        }
      },
      "type": "object",
      "title": "EmotionalShift",
      "description": "A critical emotional state change detected in the caller's voice."
    },
    "InteractionDynamics": {
      "properties": {
        "turn_taking_quality": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000,
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Turn Taking Quality",
          "description": "How well speakers managed turn-taking - interruptions, overlaps, pacing"
        },
        "information_density": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000,
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Information Density",
          "description": "Whether the agent gave too much or too little information per turn"
        },
        "repair_effectiveness": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000,
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Repair Effectiveness",
          "description": "How misunderstandings were detected and resolved"
        },
        "rapport_trajectory": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000,
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Rapport Trajectory",
          "description": "How the interpersonal dynamic evolved across the call"
        }
      },
      "type": "object",
      "title": "InteractionDynamics",
      "description": "System-level analysis of the conversation as a whole."
    },
    "SignalResponseAlignment": {
      "properties": {
        "signal": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1,
          "title": "Signal",
          "description": "The signal observed (e.g. caller tone shift, tool result, silence)"
        },
        "agent_response": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1,
          "title": "Agent Response",
          "description": "What the agent did in response"
        },
        "alignment": {
          "type": "string",
          "enum": [
            "aligned",
            "misaligned",
            "partial"
          ],
          "title": "Alignment",
          "description": "Whether the response was aligned, misaligned, or partial"
        },
        "insight": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000,
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Insight",
          "description": "Short insight on why the alignment went the way it did"
        }
      },
      "type": "object",
      "required": [
        "signal",
        "agent_response",
        "alignment"
      ],
      "title": "SignalResponseAlignment",
      "description": "Whether the agent's response aligned with a salient signal in the call."
    },
    "TraceKeyMoment": {
      "properties": {
        "timestamp_seconds": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 86400.0,
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Timestamp Seconds",
          "description": "Approximate position in the recording (seconds from start)"
        },
        "what_happened": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1,
          "title": "What Happened",
          "description": "Plain-English description of the agent's decision"
        },
        "quality": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "optimal",
                "adequate",
                "suboptimal"
              ]
            },
            {
              "type": "null"
            }
          ],
          "title": "Quality",
          "description": "Assessment of the decision quality"
        },
        "reasoning": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000,
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Reasoning",
          "description": "Why this was the right or wrong choice given the audio context"
        },
        "decision_factors": {
          "items": {
            "$ref": "#/$defs/DecisionFactor"
          },
          "type": "array",
          "maxItems": 20,
          "title": "Decision Factors",
          "description": "Specific audio inputs that drove this decision"
        },
        "alternative": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000,
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Alternative",
          "description": "What else the agent could have done and the likely outcome"
        }
      },
      "type": "object",
      "required": [
        "what_happened"
      ],
      "title": "TraceKeyMoment",
      "description": "A key decision point identified from the call audio."
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/amigo-trace-analysis-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.