# Shilo ## Docs - [Shilo: AI Sales Coaching for High-Performing Real Estate Teams](https://docs.shilo.ai/introduction.md): Shilo analyzes call recordings with AI to surface coaching, ratings, transcripts, and metrics. Learn what the API can do and how it's organized. - [Authenticate with the Shilo API Using API Keys](https://docs.shilo.ai/authentication.md): All Shilo API requests require an API key. Learn how to generate one, pass it in requests, and understand read-only vs. read-write key permissions. - [Get Started with the Shilo API in Minutes](https://docs.shilo.ai/quickstart.md): Submit your first call recording to Shilo and retrieve AI-generated analysis in five steps. Covers authentication, call creation, and polling for results. - [MCP](https://docs.shilo.ai/mcp-server.md): Connect AI assistants and agent frameworks to Shilo's hosted MCP server and explore the available read-only tools. - [Identifier Patterns for Shilo API Resources](https://docs.shilo.ai/concepts/identifiers.md): Shilo supports multiple identifier formats for calls, contacts, and users. Learn the prefix:value pattern and when to use each identifier type. - [Cursor-Based Pagination in the Shilo API](https://docs.shilo.ai/concepts/pagination.md): Shilo list endpoints use cursor-based pagination. Learn how to use limit, cursor, and sort parameters to page through large result sets efficiently. - [Understanding AI Analysis Results from Shilo](https://docs.shilo.ai/concepts/analysis.md): Learn what Shilo's AI analysis object contains, how to interpret each field, and how to poll for completion before reading results. - [Submit Call Recordings for AI Analysis with Shilo](https://docs.shilo.ai/guides/submitting-calls.md): Learn how to POST call recordings to Shilo's API for AI processing, including required fields, optional metadata, and handling the async response. - [Retrieve and Interpret AI Call Analysis from Shilo](https://docs.shilo.ai/guides/retrieving-analysis.md): Learn how to poll for completed AI analysis on calls, appointments, and roleplays, and how to read each analysis field returned by Shilo. - [Automate 1:1 Coaching Workflows with the Shilo API](https://docs.shilo.ai/guides/coaching-workflows.md): Learn how Shilo's 1:1 Coaching feature works, how to retrieve settings and periods, and how to surface coaching agendas for agents. - [Manage Users and Invitations Through the Shilo API](https://docs.shilo.ai/guides/managing-users.md): Learn how to list, update, and suspend users, send team invitations, and sync your user data with Shilo using external IDs. - [Shilo API Reference: Base URL, Auth & Status Codes](https://docs.shilo.ai/api-reference/overview.md): The Shilo External API is organized around REST. Covers the base URL, authentication methods, response format, and standard HTTP status codes. - [List Call Recordings — Shilo API GET /api/v1/calls](https://docs.shilo.ai/api-reference/calls/list-calls.md): Retrieve a paginated list of non-roleplay call recordings. Filter by user, contact, stage, source, or date range. Returns Call objects. - [POST /api/v1/calls — Submit a Call for AI Analysis](https://docs.shilo.ai/api-reference/calls/create-call.md): Submit a new call recording to Shilo for AI processing. Provide a recording URL, agent details, and contact details. Returns a call_event_id for polling. - [Get a Call Recording — Shilo API GET /api/v1/calls](https://docs.shilo.ai/api-reference/calls/get-call.md): Retrieve a single non-roleplay call by Shilo UUID, call event ID, or your external recording ID. Returns the complete Call object with all fields. - [Retrieve Call Analysis — GET /calls/{identifier}/analysis](https://docs.shilo.ai/api-reference/calls/get-call-analysis.md): Retrieve AI-generated call analysis including rating, coaching feedback, summary, disposition, objections, action items, and speaker labels. - [Retrieve a Call Transcript — GET /calls/{identifier}](https://docs.shilo.ai/api-reference/calls/get-call-transcript.md): Get a sanitized call transcript with AI-resolved speaker names. Returns 409 until analysis is complete. Not supported for Follow Up Boss accounts. - [List Appointment Recordings — Shilo API](https://docs.shilo.ai/api-reference/appointments/list-appointments.md): Retrieve a paginated list of appointment recordings filtered by user, contact, or date range. Appointments are created automatically via CRM integration, not via API. - [Retrieve an Appointment Recording — Shilo API](https://docs.shilo.ai/api-reference/appointments/get-appointment.md): Retrieve a single appointment recording by its Shilo recording UUID or external recording ID. Returns the Appointment object with user and contact identifiers. - [Retrieve Appointment Analysis — Shilo API](https://docs.shilo.ai/api-reference/appointments/get-appointment-analysis.md): Retrieve AI-generated analysis for an appointment recording: rating, coaching, summary, disposition, and objections. Poll the progress field until it reaches 100. - [Retrieve Appointment Transcript — Shilo API](https://docs.shilo.ai/api-reference/appointments/get-appointment-transcript.md): Retrieve the sanitized transcript for an appointment recording with AI-resolved speaker names. Returns 403 for Follow Up Boss accounts, 409 if speaker resolution is still in progress. - [List Roleplay Training Calls — Shilo API](https://docs.shilo.ai/api-reference/roleplays/list-roleplays.md): Retrieve a paginated list of AI roleplay training calls. Filter by user, contact, stage, or source. Each roleplay includes scenario metadata and is separate from live call recordings. - [Retrieve a Roleplay Training Call — Shilo API](https://docs.shilo.ai/api-reference/roleplays/get-roleplay.md): Retrieve a single processed roleplay call by its Shilo UUID or call event ID. Returns the Roleplay object with scenario metadata, user, contact, and recording details. - [Retrieve Roleplay Analysis — Shilo API](https://docs.shilo.ai/api-reference/roleplays/get-roleplay-analysis.md): Retrieve AI analysis for a roleplay training call including coaching feedback, performance rating, disposition, objections, and session summary. Poll progress until it reaches 100. - [Retrieve Roleplay Transcript — Shilo API](https://docs.shilo.ai/api-reference/roleplays/get-roleplay-transcript.md): Retrieve the sanitized transcript for a roleplay call with AI-resolved speaker names. Available for all CRM integrations. Returns 409 Conflict until speaker resolution is complete. - [List Contacts — Shilo API Reference](https://docs.shilo.ai/api-reference/contacts/list-contacts.md): Retrieve a paginated list of contacts in your Shilo organization. Filter by external ID, phone, email, or name. Supports cursor-based pagination. - [Create a Contact — Shilo API Reference](https://docs.shilo.ai/api-reference/contacts/create-contact.md): Create a new contact in Shilo with name, email, phone, and your external contact ID for cross-system linking. Requires a write-enabled API key. - [Get a Contact — Shilo API Reference](https://docs.shilo.ai/api-reference/contacts/get-contact.md): Retrieve a single contact by Shilo UUID or your external contact ID. Supports id:uuid and external_contact_id: prefix patterns for flexible lookup. - [Update a Contact — Shilo API Reference](https://docs.shilo.ai/api-reference/contacts/update-contact.md): Update contact profile fields including name, phone, emails, stage, source, and tags. Use Shilo UUID or external_contact_id to identify the contact. - [Get Contact Signal — Shilo API Reference](https://docs.shilo.ai/api-reference/contacts/get-contact-signal.md): Retrieve the latest AI-derived behavioral and communication profile for a contact, including DISC dimensions and coaching-oriented context. - [Get Contact Metrics — Shilo API Reference](https://docs.shilo.ai/api-reference/contacts/get-contact-metrics.md): Retrieve dashboard-aligned call performance metrics for a specific contact. Filter by date range, source, stage, team, and call direction. - [List Users — Shilo API Reference](https://docs.shilo.ai/api-reference/users/list-users.md): Retrieve a paginated list of users in your Shilo organization. Filter by external user ID, email, or name. Returns User objects with pagination cursor. - [Get a User — Shilo API Reference](https://docs.shilo.ai/api-reference/users/get-user.md): Retrieve a single user by Shilo UUID or your external user ID. Supports id:uuid and external_user_id: prefix patterns for flexible cross-system lookup. - [Update a User — Shilo API Reference](https://docs.shilo.ai/api-reference/users/update-user.md): Update a user's name, timezone, picture, or external ID in Shilo. Use the Shilo UUID or external_user_id to identify the user. Requires a write key. - [Update User Email — Shilo API Reference](https://docs.shilo.ai/api-reference/users/update-user-email.md): Update the email address for a Shilo user. This dedicated endpoint is separate from the general profile update. Requires a write-enabled API key. - [Suspend a User — Shilo API Reference](https://docs.shilo.ai/api-reference/users/suspend-user.md): Suspend a user's membership in your Shilo integration. Does not delete their Shilo account or remove integration membership for Zillow Flex Advisor users. - [Get User Signal — Shilo API Reference](https://docs.shilo.ai/api-reference/users/get-user-signal.md): Retrieve the latest AI-derived behavioral and communication profile for a user, including DISC dimensions and coaching-oriented context. - [Get User Metrics — Shilo API Reference](https://docs.shilo.ai/api-reference/users/get-user-metrics.md): Retrieve dashboard-aligned performance metrics for a single agent. Filter by date range, source, stage, team, and call direction. Matches the web app view. - [List Pending Invitations in Your Shilo Organization](https://docs.shilo.ai/api-reference/invitations/list-invitations.md): Retrieve a paginated list of pending invitations in your Shilo organization. Supports cursor-based pagination and ascending or descending sort order. - [Create and Send a New Agent Invitation in Shilo API](https://docs.shilo.ai/api-reference/invitations/create-invitation.md): Invite an agent to join your Shilo organization by email. Returns 201 when a new invitation is created, or 200 if a pending one exists. - [Resend a Pending Agent Invitation Email in Shilo API](https://docs.shilo.ai/api-reference/invitations/resend-invitation.md): Re-queue a pending invitation email to an agent in Shilo. Returns 202 when accepted. The invitation must still be in pending status. - [Cancel a Pending Invitation — Shilo Invitations API](https://docs.shilo.ai/api-reference/invitations/cancel-invitation.md): Cancel a pending invitation in Shilo so it can no longer be accepted. Returns 204 No Content on success. Requires a write-enabled API key. - [Retrieve Integration-Wide Call Metrics — Shilo API](https://docs.shilo.ai/api-reference/metrics/get-integration-metrics.md): Retrieve aggregated call performance metrics for your entire Shilo integration. Filter by date range, source, stage, team, and call direction. - [Retrieve Per-Agent Call Performance Metrics — Shilo](https://docs.shilo.ai/api-reference/metrics/get-user-metrics.md): Retrieve dashboard-aligned call metrics for a single agent. Identify by Shilo UUID or external_user_id. Filter by date and direction. - [Retrieve Per-Contact Call Performance Metrics — Shilo](https://docs.shilo.ai/api-reference/metrics/get-contact-metrics.md): Retrieve dashboard-aligned call metrics for a single contact. Identify by Shilo UUID or external_contact_id. Filter by date and direction. - [Retrieve 1:1 Coaching Settings — Shilo Coaching API](https://docs.shilo.ai/api-reference/coaching/get-settings.md): Retrieve 1:1 coaching settings for your Shilo integration: cadence, enabled status, custom focus text, custom questions, and per-user usage limits. - [List All 1:1 Coaching Periods — Shilo Coaching API](https://docs.shilo.ai/api-reference/coaching/list-periods.md): Retrieve a paginated list of 1:1 coaching periods for your integration. Filter by cadence. Each period shows its review status and digest readiness. - [Retrieve a Single Coaching Period — Shilo Coaching](https://docs.shilo.ai/api-reference/coaching/get-period.md): Retrieve a single coaching period and its team digest once processing completes. Check the digest_status field before reading digest content. - [List All Agent Coaching Agendas for a Period — Shilo](https://docs.shilo.ai/api-reference/coaching/list-period-agendas.md): List all agent coaching agendas for a period, including ready, failed, and not-eligible agendas. Filter by user ID to find a specific agent's agenda. - [Retrieve a Single Agent Coaching Agenda — Shilo API](https://docs.shilo.ai/api-reference/coaching/get-agenda.md): Retrieve a single agent coaching agenda and its completion state. The agenda URL can be used to direct the agent to complete their 1:1 coaching session.