> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs-dev.iclosed.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Calls

> Search event calls with filters and pagination



## OpenAPI

````yaml GET /v1/eventCalls
openapi: 3.0.0
info:
  title: iClosed.io V1 API
  description: >-
    V1 Public API with organization-based rate limiting. All requests require
    X-Org-Id header from API Gateway authorizer. This spec is generated from v1
    module schemas (Zod).
  version: 1.0.0
  contact:
    name: iClosed.io Support
    url: https://app.iclosed.io/support
  license:
    name: Proprietary
    url: https://app.iclosed.io/terms
servers:
  - url: http://localhost:4000
    description: local
  - url: https://public.api.iclosed.io
    description: V1 APIs (public)
  - url: https://api-dev.iclosed.io
    description: Development
  - url: https://api.iclosed.io
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Contacts
    description: Contact management
  - name: Deals
    description: Deal management
  - name: Events
    description: Event dates and time slots
  - name: Products
    description: Product listing
  - name: Outcomes
    description: Call outcomes
paths:
  /v1/eventCalls:
    get:
      tags:
        - Calls
      summary: Get Calls
      description: >-
        Search event calls. Supports single filters (id, eventId, userId,
        contactId, previewId, dateTime), date range (dateFrom, dateTo),
        eventType (e.g. PAST, UPCOMING, ALL), pagination (limit, page), and
        comma-separated lists (ids, userIds, teamIds, eventIds, types,
        inviteeEmails, outcomes, noSaleReason, utmKeys, utmValues, callTypes,
        setterIds). Caller parses comma-separated values.
      operationId: searchEventCall
      parameters:
        - name: id
          in: query
          schema:
            type: integer
            exclusiveMinimum: true
        - name: ids
          in: query
          schema:
            type: string
        - name: eventId
          in: query
          schema:
            type: integer
            exclusiveMinimum: true
        - name: dateTime
          in: query
          schema:
            type: string
        - name: userId
          in: query
          schema:
            type: integer
            exclusiveMinimum: true
        - name: previewId
          in: query
          schema:
            type: string
        - name: contactId
          in: query
          schema:
            type: integer
            exclusiveMinimum: true
        - name: eventType
          in: query
          schema:
            type: string
            enum:
              - PAST
              - UPCOMING
              - ALL
        - name: search
          in: query
          schema:
            type: string
        - name: dateFrom
          in: query
          schema:
            type: string
        - name: dateTo
          in: query
          schema:
            type: string
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 1000
        - name: page
          in: query
          schema:
            type: integer
            minimum: 0
        - name: userIds
          in: query
          schema:
            type: string
        - name: teamIds
          in: query
          schema:
            type: string
        - name: eventIds
          in: query
          schema:
            type: string
        - name: types
          in: query
          schema:
            description: >-
              Comma-separated. Allowed values: rescheduled_events,
              cancelled_events, scheduled_events
            type: string
          description: >-
            Comma-separated. Allowed values: rescheduled_events,
            cancelled_events, scheduled_events
        - name: inviteeEmails
          in: query
          schema:
            type: string
        - name: outcomes
          in: query
          schema:
            description: >-
              Comma-separated. Allowed values: WON, NO_SALE, QUALIFIED,
              UNQUALIFIED, PENDING, APPROVED, REJECTED, PENDING_OUTCOME
            type: string
          description: >-
            Comma-separated. Allowed values: WON, NO_SALE, QUALIFIED,
            UNQUALIFIED, PENDING, APPROVED, REJECTED, PENDING_OUTCOME
        - name: noSaleReason
          in: query
          schema:
            description: >-
              Comma-separated. Allowed values: FOLLOW_UP_SCHEDULE, UNQUALIFIED,
              NO_SHOW, CONTACT_CANCELLED, ADMIN_CANCELLED, NOT_INTERESTED,
              BAD_FIT, OTHER
            type: string
          description: >-
            Comma-separated. Allowed values: FOLLOW_UP_SCHEDULE, UNQUALIFIED,
            NO_SHOW, CONTACT_CANCELLED, ADMIN_CANCELLED, NOT_INTERESTED,
            BAD_FIT, OTHER
        - name: utmKeys
          in: query
          schema:
            type: string
        - name: utmValues
          in: query
          schema:
            type: string
        - name: callTypes
          in: query
          schema:
            description: 'Comma-separated. Allowed values: STRATEGY_EVENT, DISCOVERY_EVENT'
            type: string
          description: 'Comma-separated. Allowed values: STRATEGY_EVENT, DISCOVERY_EVENT'
        - name: setterIds
          in: query
          schema:
            type: string
      responses:
        '201':
          description: List of event calls with count
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      eventCalls:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: number
                            isSlotFree:
                              nullable: true
                              type: boolean
                            overBooked:
                              type: number
                            totalOverBooked:
                              type: number
                            SettedClaim:
                              nullable: true
                              type: object
                              properties:
                                id:
                                  type: number
                                claimStatus:
                                  type: string
                                outcome:
                                  type: string
                                user:
                                  nullable: true
                                  type: object
                                  properties:
                                    id:
                                      type: number
                                    firstName:
                                      nullable: true
                                      type: string
                                    lastName:
                                      nullable: true
                                      type: string
                                    profilePictureKey:
                                      nullable: true
                                      type: string
                                    signedUrl:
                                      nullable: true
                                      type: string
                                  additionalProperties: false
                              required:
                                - id
                                - claimStatus
                                - outcome
                              additionalProperties: false
                            deals:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: number
                                  value:
                                    type: number
                                  time:
                                    nullable: true
                                    type: string
                                  transactionType:
                                    nullable: true
                                    type: string
                                  product:
                                    nullable: true
                                    type: object
                                    properties:
                                      id:
                                        type: number
                                      name:
                                        nullable: true
                                        type: string
                                    required:
                                      - id
                                    additionalProperties: false
                                  Transaction:
                                    nullable: true
                                    type: object
                                    properties:
                                      id:
                                        type: number
                                    required:
                                      - id
                                    additionalProperties: false
                                required:
                                  - id
                                  - value
                                additionalProperties: false
                            deletedAt:
                              nullable: true
                              type: string
                            locationLink:
                              nullable: true
                              type: string
                            locationLinkInvitee:
                              nullable: true
                              type: string
                            cancelReason:
                              nullable: true
                              type: string
                            location:
                              nullable: true
                              type: string
                            isCalendarConnected:
                              nullable: true
                              type: boolean
                            isZoomConnected:
                              nullable: true
                              type: boolean
                            rescheduledBy:
                              nullable: true
                              type: string
                            rescheduleReason:
                              nullable: true
                              type: string
                            eventId:
                              type: number
                            googleResponseStatus:
                              nullable: true
                              type: string
                            dateTime:
                              type: string
                            dateTimeUTC:
                              type: string
                            userId:
                              nullable: true
                              type: integer
                            firstName:
                              nullable: true
                              type: string
                            lastName:
                              nullable: true
                              type: string
                            notes:
                              nullable: true
                              type: string
                            allowReschedule:
                              nullable: true
                              type: boolean
                            cancelledBy:
                              nullable: true
                              type: string
                            email:
                              nullable: true
                              type: string
                            callId:
                              type: number
                            taskId:
                              anyOf:
                                - type: number
                                - type: boolean
                            task:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: number
                                  completed:
                                    type: boolean
                                  outcome:
                                    nullable: true
                                    type: string
                                  noSaleReason:
                                    nullable: true
                                    type: string
                                  objection:
                                    nullable: true
                                    type: string
                                  notes:
                                    nullable: true
                                    type: string
                                required:
                                  - id
                                  - completed
                                additionalProperties: false
                            contactId:
                              nullable: true
                              type: number
                            utm:
                              type: array
                              items:
                                type: object
                                properties:
                                  utmKey:
                                    type: string
                                  utmValue:
                                    nullable: true
                                    type: string
                                required:
                                  - utmKey
                                additionalProperties: false
                            color:
                              nullable: true
                              type: string
                            name:
                              nullable: true
                              type: string
                            duration:
                              type: number
                            durationUnit:
                              nullable: true
                              type: string
                            linkPassword:
                              nullable: true
                              type: string
                            eventDeletedAt:
                              nullable: true
                              type: string
                            internalDescription:
                              nullable: true
                              type: string
                            linkPrefix:
                              nullable: true
                              type: string
                            previewId:
                              nullable: true
                              type: string
                            inviteeEmail:
                              nullable: true
                              type: string
                            inviteeName:
                              nullable: true
                              type: string
                            phoneNumber:
                              nullable: true
                              type: string
                            inviteTimeZone:
                              nullable: true
                              type: string
                            inviteeSecondaryEmail:
                              nullable: true
                              type: string
                            inviteeSecondaryPhone:
                              nullable: true
                              type: string
                            questions:
                              type: array
                              items:
                                type: object
                                properties:
                                  statement:
                                    type: string
                                  answer:
                                    type: string
                                required:
                                  - statement
                                  - answer
                                additionalProperties: false
                            secondaryAnswers:
                              type: array
                              items:
                                type: object
                                properties:
                                  statement:
                                    type: string
                                  isSecondaryQuestion:
                                    type: boolean
                                  answer:
                                    anyOf:
                                      - type: object
                                        properties:
                                          inputType:
                                            nullable: true
                                            type: string
                                          answer:
                                            nullable: true
                                            type: string
                                          date:
                                            nullable: true
                                            type: string
                                          userId:
                                            nullable: true
                                            type: number
                                          number:
                                            nullable: true
                                            type: number
                                          user:
                                            nullable: true
                                            type: object
                                            properties:
                                              firstName:
                                                nullable: true
                                                type: string
                                              lastName:
                                                nullable: true
                                                type: string
                                            additionalProperties: false
                                        additionalProperties: false
                                      - type: array
                                        items:
                                          type: object
                                          properties:
                                            inputType:
                                              nullable: true
                                              type: string
                                            answer:
                                              nullable: true
                                              type: string
                                            date:
                                              nullable: true
                                              type: string
                                            userId:
                                              nullable: true
                                              type: number
                                            number:
                                              nullable: true
                                              type: number
                                            user:
                                              nullable: true
                                              type: object
                                              properties:
                                                firstName:
                                                  nullable: true
                                                  type: string
                                                lastName:
                                                  nullable: true
                                                  type: string
                                              additionalProperties: false
                                          additionalProperties: false
                                      - type: string
                                        nullable: true
                                        enum:
                                          - null
                                additionalProperties: false
                            callType:
                              nullable: true
                              type: string
                            eventType:
                              type: string
                              enum:
                                - UPCOMING
                                - PAST
                            userAvailabilityTimezone:
                              nullable: true
                              type: string
                            slotFreeEnabled:
                              type: boolean
                            emailValidationResult:
                              nullable: true
                              type: string
                          required:
                            - id
                            - eventId
                            - dateTime
                            - callId
                            - eventType
                          additionalProperties: false
                      count:
                        type: integer
                        minimum: 0
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
              example:
                data:
                  eventCalls:
                    - id: 8
                      isSlotFree: false
                      overBooked: 0
                      totalOverBooked: 0
                      SettedClaim:
                        id: 19
                        claimStatus: USER_SCHEDULED
                        outcome: APPROVED
                        user: null
                      deals: []
                      deletedAt: null
                      locationLink: null
                      locationLinkInvitee: null
                      cancelReason: null
                      location: PHONE_CALL
                      isCalendarConnected: false
                      isZoomConnected: false
                      rescheduledBy: null
                      rescheduleReason: null
                      eventId: 4
                      googleResponseStatus: null
                      dateTime: '2026-02-27 10:00:00.000'
                      dateTimeUTC: '2026-02-27T05:00:00.000Z'
                      userId: 2
                      firstName: Jane
                      lastName: ''
                      notes: null
                      allowReschedule: true
                      cancelledBy: null
                      email: dev@example.com
                      callId: 8
                      taskId: 8
                      task:
                        - id: 8
                          completed: false
                          outcome: null
                          noSaleReason: null
                          objection: null
                          notes: null
                      contactId: 12
                      utm: []
                      color: '#0099FF'
                      name: new-event
                      duration: 30
                      durationUnit: MINUTES
                      linkPassword: null
                      eventDeletedAt: null
                      internalDescription: ''
                      linkPrefix: amunim/new-event
                      previewId: contact_1a9L9PIsHg_t
                      inviteeEmail: '+923231312983'
                      inviteeName: '  '
                      phoneNumber: '+923231312983'
                      inviteTimeZone: Asia/Karachi
                      inviteeSecondaryEmail: null
                      inviteeSecondaryPhone: null
                      questions:
                        - statement: First Name
                          answer: ''
                        - statement: Phone Number
                          answer: '+923231312983'
                      secondaryAnswers: []
                      callType: STRATEGY_EVENT
                      eventType: UPCOMING
                      userAvailabilityTimezone: Asia/Karachi
                      slotFreeEnabled: false
                      emailValidationResult: null
                  count: 8
        '400':
          description: >-
            Bad request or validation failed (V1 Zod:
            message.details.fieldErrors/formErrors; or express-validator:
            message + errors array/object)
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      message:
                        type: string
                        description: Always "Invalid request" when errors is an array
                      errors:
                        type: array
                        items:
                          type: string
                        description: List of validation error messages
                    required:
                      - message
                      - errors
                    additionalProperties: false
                  - type: object
                    properties:
                      message:
                        type: string
                        description: e.g. "Invalid request" or custom message
                      errors:
                        type: object
                        additionalProperties:
                          type: array
                          items:
                            type: string
                        description: >-
                          Field name to list of validation error messages for
                          that field
                    required:
                      - message
                      - errors
                    additionalProperties: false
                  - type: object
                    properties:
                      message:
                        type: object
                        properties:
                          status:
                            type: number
                            enum:
                              - 400
                          details:
                            type: object
                            properties:
                              formErrors:
                                type: array
                                items:
                                  type: string
                                description: Global form-level error messages
                              fieldErrors:
                                type: object
                                additionalProperties:
                                  type: array
                                  items:
                                    type: string
                                description: >-
                                  Field name to list of validation error
                                  messages
                            required:
                              - formErrors
                              - fieldErrors
                            additionalProperties: false
                          body:
                            type: object
                            additionalProperties: {}
                          query:
                            type: object
                            additionalProperties: {}
                          endpoint:
                            type: string
                          method:
                            type: string
                          token:
                            type: string
                        required:
                          - status
                          - details
                        additionalProperties: false
                    required:
                      - message
                    additionalProperties: false
              examples:
                validationZodDetails:
                  summary: >-
                    V1 Zod validation (body/query) – message contains status,
                    details, request context
                  value:
                    message:
                      status: 400
                      details:
                        formErrors: []
                        fieldErrors:
                          eventCallId:
                            - 'Invalid input: expected number, received undefined'
                      body: {}
                      query: {}
                      endpoint: /v1/deals
                      method: POST
                      token: Bearer iclosed_***
                validationArray:
                  summary: Validation errors (array)
                  value:
                    message: Invalid request
                    errors:
                      - email must be an email
                      - name is required
                validationObject:
                  summary: Validation errors (by field)
                  value:
                    message: Invalid request
                    errors:
                      email:
                        - Invalid email
                      name:
                        - Required
        '401':
          description: Unauthorized – missing or invalid API key (Bearer token required)
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: e.g. "API key is required" or "Invalid API key"
                  code:
                    description: >-
                      Optional code e.g. MISSING_API_KEY when rate limiter runs
                      before valid auth
                    type: string
                required:
                  - message
                additionalProperties: false
              examples:
                missing:
                  summary: Missing API key
                  value:
                    message: API key is required
                invalid:
                  summary: Invalid API key
                  value:
                    message: Invalid API key
                missingFromRateLimiter:
                  summary: Missing auth when rate limiter runs first
                  value:
                    code: MISSING_API_KEY
                    message: API key is required for this endpoint
        '403':
          description: Forbidden – insufficient permissions
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                required:
                  - message
                additionalProperties: false
              example:
                message: Forbidden access
        '404':
          description: >-
            Resource not found (e.g. NOT_FOUND, RECORD_NOT_FOUND,
            EVENT_NOT_FOUND)
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: e.g. "Resource not found!" or "Record not found!"
                required:
                  - message
                additionalProperties: false
              examples:
                generic:
                  summary: Generic not found
                  value:
                    message: Resource not found!
                record:
                  summary: Record not found
                  value:
                    message: Record not found!
        '429':
          description: >-
            Rate limit exceeded. Per-account, per-action limits apply. Response
            may include RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset,
            and Retry-After headers.
          headers:
            RateLimit-Limit:
              description: Maximum requests allowed in the current window
              schema:
                type: string
            RateLimit-Remaining:
              description: Requests remaining in the current window
              schema:
                type: string
            RateLimit-Reset:
              description: ISO 8601 timestamp when the rate limit window resets
              schema:
                type: string
                format: date-time
            Retry-After:
              description: Seconds until the client can retry (when applicable)
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    enum:
                      - RATE_LIMIT_EXCEEDED
                    description: Fixed code for rate limit responses
                  message:
                    type: string
                    description: e.g. "Too many requests, please try again later."
                  retryAfter:
                    description: Seconds until the rate limit window resets
                    type: number
                  limit:
                    description: Configured limit (when using account-based rate limiter)
                    type: object
                    properties:
                      points:
                        type: number
                      windowSec:
                        type: number
                    required:
                      - points
                      - windowSec
                    additionalProperties: false
                required:
                  - code
                  - message
                additionalProperties: false
              example:
                code: RATE_LIMIT_EXCEEDED
                message: Too many requests, please try again later.
        '500':
          description: >-
            Internal server error. Prisma and unhandled errors return a generic
            message; stack is only included in non-production.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: >-
                      Generic: "Something went wrong" for Prisma errors, or
                      error message
                  stack:
                    description: Present only in non-production
                    type: string
                required:
                  - message
                additionalProperties: false
              examples:
                generic:
                  summary: Generic (e.g. Prisma errors)
                  value:
                    message: Something went wrong
                withMessage:
                  summary: Error with message
                  value:
                    message: Database connection failed
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'API key required in Authorization header. Format: `iclosed-<token>`'

````