> ## Documentation Index
> Fetch the complete documentation index at: https://developer.zeeg.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Agent Call

> Get one AI voice agent call, with its collected data, analysis and transcript.



## OpenAPI

````yaml GET /agent-calls/{callId}
openapi: 3.0.0
info:
  title: Zeeg Public API
  description: >-
    Zeeg public API documentation.


    ## Authentication

    All endpoints require a Bearer token. You can generate an API token from
    [your Zeeg dashboard](https://app.zeeg.me/account/settings/api-access).


    Each token is scoped to specific permissions (e.g. `events:read`,
    `webhooks:write`). Make sure your token has the required scopes for the
    endpoints you want to use.


    ## Recommended Headers

    We recommend including the `Accept: application/json` header in all API
    requests to ensure you receive JSON responses.
  version: 2.0.0
  x-logo:
    url: https://app.zeeg.me/img/logo-dark.2ca83593.svg
    backgroundColor: '#f7f7f9'
    altText: zeeg
  contact:
    name: Zeeg Support
    email: support@zeeg.me
    url: https://zeeg.me/en/contact
  license:
    name: Proprietary
    url: https://zeeg.me/en/legal/terms
  termsOfService: https://zeeg.me/en/legal/terms
servers:
  - url: https://api.zeeg.me/v2
    description: Production
security:
  - bearer: []
tags:
  - name: Scheduled Events
    description: Management of events scheduled via Zeeg
  - name: Scheduling Pages
    description: Scheduling pages information and management
  - name: Availability Schedule
    description: Read and change availability for users
  - name: Webhooks
    description: Webhooks management
  - name: Notes
    description: Notes for scheduled events
  - name: Workspaces & Teams
    description: Workspace users and team member management
  - name: AI Agent
    description: AI Agent integration endpoints
  - name: Payloads
    description: Webhook payload schemas
  - name: CRM - Objects
    description: >-
      Discover the schema of CRM objects (standard and custom) including all
      attribute definitions
  - name: CRM - Companies
    description: Create, read, update, and delete CRM company records
  - name: CRM - People
    description: Create, read, update, and delete CRM person records
  - name: Routing Forms - Forms
    description: Read routing forms with their questions and their routes
  - name: Routing Forms - Submissions
    description: Read and delete the submissions that invitees send through a routing form
paths:
  /agent-calls/{callId}:
    get:
      tags:
        - AI Agent
      summary: Get a call
      description: >-
        Returns one call with its collected data, its analysis and its
        transcript. The fields match the `ai_agent.call_completed` webhook
        payload, with `id` in place of `conversationId`, so the `conversationId`
        a webhook delivered opens the call here.


        The transcript is read live from the voice provider. A call made while
        the agent had transcript storage switched off has no transcript:
        `transcript` is empty and `transcriptUnavailableReason` is
        `privacy_settings`.


        A call of another workspace answers 403.


        **Required scope:** `agents:read`
      operationId: get-agent-calls-callId
      parameters:
        - schema:
            type: string
          in: path
          name: callId
          required: true
          description: >-
            The call id from the call log, or the `conversationId` of the
            `ai_agent.call_completed` webhook.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  status:
                    type: integer
                    example: 200
                  call:
                    $ref: '#/components/schemas/AiAgentCallDetail'
              examples:
                Success:
                  value:
                    success: true
                    status: 200
                    call:
                      id: 7fK2pQx9Lm
                      status: done
                      callSummaryTitle: Pricing question
                      agentId: 9a39bf60-a6c3-45e7-80cd-2cd36e520861
                      agentName: Front Desk
                      direction: inbound
                      callOutcome: answered
                      isCall: true
                      startedAt: '2026-06-01T10:00:00+00:00'
                      endedAt: '2026-06-01T10:01:30+00:00'
                      durationSeconds: 90
                      contactPhoneNumber: '+4917612345678'
                      contactName: Alice Example
                      contactEmail: alice@example.com
                      agentPhoneNumber: '+4989123456789'
                      agentLanguage: de
                      conversationLanguage: de
                      transcript:
                        - role: agent
                          message: >-
                            Hello, thank you for calling. How can I help you
                            today?
                          timeInCallSeconds: 0
                        - role: user
                          message: Hi, I'd like to know more about your pricing.
                          timeInCallSeconds: 4
                      conversationAnalysis:
                        transcriptSummary: >-
                          The caller asked about product pricing and requested a
                          follow-up call next week.
                        collectedData:
                          name:
                            value: Alice Example
                            type: string
                          email:
                            value: alice@example.com
                            type: string
                      actions: []
                      booking: null
                      crmPersonId: 3f2b6c1e-8a4d-4f7e-9b20-6d1c5a8e7f30
                      outboundCall: null
                      transcriptUnavailableReason: null
                      createdAt: '2026-06-01T10:00:05+00:00'
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: >-
            Forbidden — the token misses the scope, the user may not read
            agents, or the call belongs to another workspace
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  data:
                    nullable: true
                  status:
                    type: integer
              examples:
                Call of another workspace:
                  value:
                    success: false
                    message: You are not a user of this organization.
                    data: null
                    status: 403
        '404':
          description: Not Found — no call has this id
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  data:
                    nullable: true
                  status:
                    type: integer
              examples:
                Call not found:
                  value:
                    success: false
                    message: Conversation not found
                    data: null
                    status: 404
      security:
        - bearer: []
components:
  schemas:
    AiAgentCallDetail:
      type: object
      description: >-
        One call with its analysis and its transcript. Apart from `id`,
        `status`, `callSummaryTitle`, `transcriptUnavailableReason` and
        `createdAt`, the fields are those of the `ai_agent.call_completed`
        webhook payload, described there in full.
      properties:
        id:
          type: string
          description: >-
            The call id, the `conversationId` of the `ai_agent.call_completed`
            webhook.
          example: 7fK2pQx9Lm
        status:
          type: string
          enum:
            - initiated
            - done
        callSummaryTitle:
          type: string
          nullable: true
        agentId:
          type: string
          format: uuid
          nullable: true
        agentName:
          type: string
          nullable: true
        direction:
          type: string
          enum:
            - inbound
            - outbound
        callOutcome:
          type: string
          nullable: true
          enum:
            - answered
            - voicemail
            - not_answered
            - busy
            - unknown
        isCall:
          type: boolean
        startedAt:
          type: string
          format: date-time
          nullable: true
        endedAt:
          type: string
          format: date-time
          nullable: true
        durationSeconds:
          type: integer
        contactPhoneNumber:
          type: string
          nullable: true
        contactName:
          type: string
          nullable: true
        contactEmail:
          type: string
          nullable: true
        agentPhoneNumber:
          type: string
          nullable: true
        agentLanguage:
          type: string
          nullable: true
        conversationLanguage:
          type: string
          nullable: true
        transcript:
          type: array
          description: >-
            Ordered spoken turns, read live from the voice provider. Empty when
            `transcriptUnavailableReason` is set.
          items:
            type: object
            properties:
              role:
                type: string
                description: >-
                  `agent` for the voice agent, `user` for the person on the
                  other end of the call.
              message:
                type: string
              timeInCallSeconds:
                type: integer
                nullable: true
        conversationAnalysis:
          type: object
          properties:
            transcriptSummary:
              type: string
              nullable: true
            collectedData:
              type: object
              description: >-
                Map of collected field key to its `{ value, type }`, as in the
                webhook payload.
              additionalProperties:
                type: object
                properties:
                  value:
                    description: The value the agent collected, typed according to `type`.
                  type:
                    type: string
                    nullable: true
        systemNotes:
          type: array
          description: >-
            Notes Zeeg adds about the call, as in the webhook payload. Empty
            when there is nothing to note. Ignore a `code` you do not recognize.
          items:
            type: object
            properties:
              code:
                type: string
                nullable: true
              message:
                type: string
        actions:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
              routeId:
                type: string
                nullable: true
              calledAt:
                type: string
                nullable: true
        booking:
          type: object
          nullable: true
          description: The scheduled event booked during the call; `null` if none.
          allOf:
            - $ref: '#/components/schemas/ScheduledEvent'
        crmPersonId:
          type: string
          format: uuid
          nullable: true
        outboundCall:
          type: object
          nullable: true
          description: What you sent to the outbound-call API when you started this call.
          properties:
            id:
              type: string
              format: uuid
            fullName:
              type: string
              nullable: true
            email:
              type: string
              nullable: true
            additionalData:
              type: string
              nullable: true
            scheduledTime:
              type: string
              format: date-time
              nullable: true
        transcriptUnavailableReason:
          type: string
          nullable: true
          enum:
            - privacy_settings
          description: >-
            `privacy_settings` when the call ran while the agent had transcript
            storage switched off, so no transcript exists. `null` otherwise.
        createdAt:
          type: string
          format: date-time
          description: When Zeeg first recorded the call.
    ScheduledEvent:
      type: object
      required:
        - uri
        - uuid
        - title
        - type
        - startTime
        - endTime
        - duration
        - status
        - eventTypeUri
        - maxActiveInvitees
        - activeInviteesCount
        - invitees
        - teamName
        - createdAt
      properties:
        uri:
          type: string
          format: uri
          description: Public API URI of the scheduled event resource.
        uuid:
          type: string
          description: Zeeg event identifier (zg-XXX format)
          example: zg-O69bac566950c6
        title:
          type: string
          description: Title of the scheduled event.
        type:
          type: string
          description: Event type kind (e.g. `ONE_ON_ONE`, `GROUP`, `ROUND_ROBIN`).
        startTime:
          type: string
          format: date-time
          description: ISO 8601 UTC start time of the booked event.
        endTime:
          type: string
          format: date-time
          description: ISO 8601 UTC end time of the booked event.
        duration:
          type: integer
          description: Event duration in minutes.
        status:
          type: string
          description: Booking status (e.g. `confirmed`, `cancelled`).
        eventTypeUri:
          type: string
          format: uri
          description: Public API URI of the event type this booking was made against.
        location:
          type: object
          nullable: true
          required:
            - type
          properties:
            type:
              type: string
              description: >-
                Location type (e.g. `google_meet`, `zoom`, `phone`,
                `in_person`).
            joinUrl:
              type: string
              format: uri
              description: Join URL for the meeting, when applicable.
              nullable: true
          description: Meeting location for the booking.
        maxActiveInvitees:
          type: integer
          description: Maximum number of active invitees the event allows.
        activeInviteesCount:
          type: integer
          description: Current number of active (non-cancelled) invitees.
        invitees:
          type: array
          items:
            type: object
            required:
              - fullName
              - email
              - timeZone
              - scheduledAt
              - noShow
            properties:
              uuid:
                type: string
                description: Zeeg attendee identifier (zg-XXX format)
                example: zg-O69bac566950c6
              salutation:
                type: string
                nullable: true
                description: Salutation for the invitee, if collected.
              fullName:
                type: string
                description: Full name of the invitee.
                nullable: true
              email:
                type: string
                format: email
                description: Email address of the invitee.
                nullable: true
              guests:
                type: array
                description: >-
                  Email addresses of additional guests the invitee added. An
                  empty array when the invitee added none.
                items:
                  type: string
              timeZone:
                type: string
                description: IANA time zone of the invitee.
                nullable: true
              cancellation:
                type: object
                properties:
                  cancelledAt:
                    type: string
                    format: date-time
                    nullable: true
                    description: ISO 8601 UTC timestamp when the invitee was cancelled.
                  cancelledBy:
                    type: string
                    nullable: true
                    description: Identifier of who cancelled the booking.
                  cancellerType:
                    type: string
                    nullable: true
                    description: Type of canceller (e.g. host, invitee).
                  cancellationReason:
                    type: string
                    nullable: true
                    description: Reason given for the cancellation.
                description: >-
                  Cancellation details. All fields are `null` when the invitee
                  is not cancelled.
              payment:
                type: object
                nullable: true
                description: >-
                  Payment details for the booking, or `null` when no payment
                  applies.
                properties:
                  gateway:
                    type: string
                    description: Payment provider, e.g. `stripe` or `paypal`.
                  price:
                    type: number
                  currency:
                    type: string
                  transactionId:
                    type: string
                    nullable: true
                  createdAt:
                    type: string
                    format: date-time
                  status:
                    type: string
                    enum:
                      - pending
                      - success
                    description: '`pending` until the transaction completes.'
              noShow:
                type: boolean
                description: >-
                  Whether the invitee has been marked as a no-show. Always
                  present.
              noShowAt:
                type: string
                format: date-time
                nullable: true
                description: >-
                  ISO 8601 UTC timestamp when the invitee was marked as a
                  no-show, or `null` when they were not.
              scheduledAt:
                type: string
                format: date-time
                description: ISO 8601 UTC timestamp when the invitee booked.
                nullable: true
              utm:
                type: object
                required:
                  - utm_campaign
                  - utm_source
                  - utm_medium
                  - utm_term
                  - utm_content
                properties:
                  utm_campaign:
                    type: string
                    nullable: true
                  utm_source:
                    type: string
                    nullable: true
                  utm_medium:
                    type: string
                    nullable: true
                  utm_content:
                    type: string
                    nullable: true
                  utm_term:
                    type: string
                    nullable: true
                description: >-
                  UTM tracking parameters captured at booking time. Always holds
                  these five keys, in `snake_case`; a key holds `null` when the
                  booking did not carry a value for it.
              adAttribution:
                type: object
                nullable: true
                properties:
                  gclid:
                    type: string
                    nullable: true
                    description: Google Ads click ID.
                  gbraid:
                    type: string
                    nullable: true
                    description: >-
                      Google click ID for iOS app-to-web clicks. Mutually
                      exclusive with `gclid` per click.
                  wbraid:
                    type: string
                    nullable: true
                    description: >-
                      Google click ID for web-to-app clicks. Mutually exclusive
                      with `gclid` per click.
                  fbclid:
                    type: string
                    nullable: true
                    description: Meta click ID.
                  fbp:
                    type: string
                    nullable: true
                    description: Meta browser ID cookie (`_fbp`) captured at booking time.
                  fbc:
                    type: string
                    nullable: true
                    description: Meta click cookie (`_fbc`) captured at booking time.
                  landingUrl:
                    type: string
                    nullable: true
                    description: >-
                      Full URL of the host page the booking widget was embedded
                      on.
                description: >-
                  Ad-click identifiers captured at booking time, keyed by
                  provider. Only the keys that were actually captured are
                  present; `null` when none were captured.
              customQueryParams:
                type: object
                description: >-
                  Custom query parameters captured at booking time, keyed by the
                  `c__`-prefixed parameter name. An empty object when the
                  booking captured none.
                example:
                  c__ref: nl-2026-04
              questions:
                type: array
                nullable: true
                items:
                  type: object
                  properties:
                    answer:
                      type: string
                    answer_type:
                      type: string
                    question:
                      type: string
                description: Booking questions answered by the invitee.
              agentBookingReference:
                type: string
                nullable: true
                description: >-
                  Reference code for bookings made via the AI agent; `null`
                  otherwise.
              cancelUrl:
                type: string
                format: uri
                nullable: true
                description: >-
                  Public URL the invitee uses to cancel this booking. `null`
                  once the booking is cancelled.
              rescheduleUrl:
                type: string
                format: uri
                nullable: true
                description: >-
                  Public URL the invitee uses to reschedule this booking. `null`
                  once the booking is cancelled.
              rescheduled:
                type: boolean
                description: >-
                  True once this booking has been superseded by a reschedule. A
                  rescheduled booking reports `status: cancelled` for backward
                  compatibility; `rescheduled` and `nextRescheduling` are how a
                  caller tells a reschedule apart from an actual cancellation.
              rescheduling:
                allOf:
                  - $ref: '#/components/schemas/EventRescheduling'
                nullable: true
                description: >-
                  Present when this booking is the *result* of a reschedule.
                  `null` when this booking was not itself created by
                  rescheduling an earlier one.
              nextRescheduling:
                allOf:
                  - $ref: '#/components/schemas/EventRescheduling'
                nullable: true
                description: >-
                  Present when this booking has been superseded by a later
                  reschedule. `null` when the booking has not been rescheduled.
          description: Invitees booked on the scheduled event.
        guests:
          type: array
          description: >-
            Email addresses of additional guests added across all invitees. An
            empty array when none were added.
          items:
            type: string
        hosts:
          type: array
          nullable: true
          items:
            type: object
            required:
              - firstName
              - email
              - slug
              - url
            properties:
              firstName:
                type: string
                description: Host's first name.
                nullable: true
              lastName:
                type: string
                description: Host's last name. Empty string when not set.
              email:
                type: string
                format: email
                description: Host's email address.
                nullable: true
              slug:
                type: string
                description: Host's public profile slug.
                nullable: true
              url:
                type: string
                format: uri
                description: Host's public profile URL.
              avatarUrl:
                type: string
                format: uri
                nullable: true
                description: URL of the host's avatar image, if set.
          description: Hosts assigned to the scheduled event.
        teamName:
          type: string
          nullable: true
          description: >-
            Name of the team that owns the scheduling page the booking was made
            on, or `null` for a personal scheduling page. The key is always
            present. This is the same value the `invitee.scheduled` webhook
            sends as `teamName` for the same booking.
          example: Sales
        createdAt:
          type: string
          format: date-time
          description: ISO 8601 UTC timestamp when the booking was created.
        updatedAt:
          type: string
          format: date-time
          description: ISO 8601 UTC timestamp when the booking was last updated.
        currentTime:
          type: string
          format: date-time
          description: Current server time
      description: >-
        A scheduled event resource. This is the single canonical shape returned
        by all scheduled-event endpoints and embedded in the AI agent call
        webhook payload.
    EventRescheduling:
      type: object
      description: >-
        Links one half of a reschedule to the other. Embedded as `rescheduling`
        (on the new booking) and `nextRescheduling` (on the superseded booking)
        inside an invitee.
      properties:
        oldStartAt:
          type: string
          format: date-time
          nullable: true
          description: >-
            ISO 8601 UTC start time the previous booking held before the
            reschedule.
        newStartAt:
          type: string
          format: date-time
          nullable: true
          description: ISO 8601 UTC start time the new booking was moved to.
        rescheduledAt:
          type: string
          format: date-time
          description: ISO 8601 UTC timestamp when the reschedule was performed.
        previousEventUuid:
          type: string
          nullable: true
          description: >-
            uuid of the superseded booking (zg-XXX format). Use it directly as
            the `uuid` path parameter of `GET /scheduled-events/{uuid}` to fetch
            that booking.
          example: zg-O69bad4047abf0
        previousInviteeUuid:
          type: string
          nullable: true
          description: >-
            uuid of the invitee on the superseded booking. No public endpoint
            accepts an invitee uuid as a path parameter.
          example: zg-O69bac566950c6
        reason:
          type: string
          nullable: true
          description: Reason given for the reschedule, if any.
        rescheduledBy:
          type: string
          nullable: true
          description: Who performed the reschedule (e.g. `host`, `invitee`).
        reschedulerFullName:
          type: string
          nullable: true
          description: Full name of the person who performed the reschedule, when known.
  responses:
    '401':
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: Unauthenticated.
          examples:
            Unauthenticated:
              value:
                message: Unauthenticated.
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: ''

````