API & MCP

Meetings API.

Find meetings, Get meeting details. For authentication, paging and errors, see the API overview.

Generated from the EQALL API on October 23, 2026 · API version 1.0 · OpenAPI JSON

Find meetings

GET/external/meetings
MCP tool: findMeetings

Search the user's meetings — past, in progress or upcoming — by title, attendee, company, date range and external vs internal. With no filters, returns meetings within 30 days of today.

Parameters

titlestring · query
Words from the meeting title (fuzzy match)
attendeestring · query
An attendee's name (fuzzy match)
companystring · query
A company that attended (fuzzy match)
fromstring · query
Date (in the user's timezone) or ISO date-time
tostring · query
Date (in the user's timezone) or ISO date-time
whenenum · query
Used when from/to are not given
pastupcomingall
typeenum · query
external: someone from outside your company attended; internal: only your company
externalinternalall
limitnumber · query
Results per page (default 20, max 50)
cursorstring · query
nextCursor from the previous page

Response

meetingsarray of objects
Show 16 child fields
meetingIdstring
Public meeting ID
titlestring
startdate-time
enddate-time
allDayboolean
statusenum
upcomingin_progresscompletedcancelled
externalboolean
Someone from outside the user's company (personal emails included) attended
hasRecapboolean
A transcript / recap exists
companiesarray of objects
companyIdstring, nullable
namestring
attendeesarray of objects
Declined attendees are omitted
contactIdstring, nullable
namestring
emailstring, nullable
companystring, nullable
Company name
nextCursorstring, nullable
Pass back as cursor (with the same filters) for the next page; null on the last page

Errors

Request
curl "https://api.eqall.com/external/meetings?when=past&type=external" \
  -H "Authorization: Bearer $EQALL_KEY"
Response · 200
{
  "meetings": [
    {
      "meetingId": "d41f6c8a-2e93-4b1a-a7f0-5c3e8b9d1f26",
      "title": "Acme <> YourCo pilot review",
      "start": "2026-10-28T17:00:00.000Z",
      "end": "2026-10-28T17:30:00.000Z",
      "allDay": false,
      "status": "upcoming",
      "external": true,
      "hasRecap": false,
      "companies": [
        {
          "companyId": "b3e9d2c1-7a44-4f0e-8d6b-91c5e2f4a830",
          "name": "Acme Corp"
        }
      ],
      "attendees": [
        {
          "contactId": "6f1c2a9e-4b7d-4e2a-9c51-2d8f0e3b7a14",
          "name": "Jane Doe",
          "email": "jane.doe@acme.com",
          "company": "Acme Corp"
        },
        {
          "contactId": "0a7e5d3b-9c21-4f68-b4e2-7d1a6c9f3e05",
          "name": "Sam Rivera",
          "email": "sam@yourco.com",
          "company": "YourCo"
        }
      ]
    }
  ],
  "nextCursor": "eyJzIjoiMjAyNi0xMC0yOFQxNzowMDowMC4wMDBaIiwidSI6ImQ0MWY2YzhhIn0"
}

Get meeting details

GET/external/meetings/{meetingId}
MCP tool: getMeetingDetails

Meeting data and attendees, plus prep (agenda, talk tracks, company background) and/or recap (summary, action items, risks, deal intelligence). Prep may take a few seconds the first time while the agenda is generated.

Parameters

meetingIdstring · pathrequired
Public meeting ID from meeting search
includearray of enum · query
Comma-separated; defaults to prep for upcoming meetings and recap for past ones
preprecap

Response

meetingIdstring
Public meeting ID
titlestring
startdate-time
enddate-time
allDayboolean
statusenum
upcomingin_progresscompletedcancelled
externalboolean
hasRecapboolean
locationstring, nullable
videoUrlstring, nullable
videoProviderstring, nullable
descriptionstring, nullable
opportunityobject, nullable
namestring
companiesarray of objects
companyIdstring, nullable
namestring
internalboolean
The user's own company
attendeesarray of objects
Show 17 child fields
contactIdstring, nullable
firstNamestring, nullable
lastNamestring, nullable
emailstring, nullable
titlestring, nullable
companyobject, nullable
companyIdstring, nullable
namestring
internalboolean
From the user's own company
organizerboolean
optionalboolean
invitedboolean
False for people who spoke but were not on the calendar invite
responseenum, nullable
null when not invited
acceptedtentativedeclinedpending
sentimentstring, nullable
advocacystring, nullable
spokeboolean, nullable
null when the meeting has no transcript
engagementenum, nullable
highmediumlow
prepobject
Present when include has "prep" (default for upcoming meetings)
Show 36 child fields
agendaobject, nullable
durationInMinutesnumber, nullable
itemsarray of objects
descriptionstring
durationInMinutesnumber, nullable
subTopicsarray of string
sharedPrioritiesarray of string
opportunityAnglesarray of objects
opportunitystring
descriptionstring, nullable
talkTracksarray of objects
personastring
descriptionstring
attendeePersonasarray of objects
namestring
primaryPersonastring, nullable
secondaryPersonastring, nullable
roleAssumptionstring, nullable
roleChallengesarray of objects
rolestring
challengestring
communicationStylearray of string
How to communicate with the attendees
companyOverviewsarray of objects
companyIdstring, nullable
namestring
overviewstring, nullable
newsarray of objects
titlestring
descriptionstring
datedate-time
urlstring
previousMeetingsarray of objects
Up to 3 related earlier meetings with a recap
meetingIdstring, nullable
titlestring
startdate-time
recapstring, nullable
recapobject
Present when include has "recap" (default for completed meetings)
Show 88 child fields
recapstring, nullable
summarystring, nullable
sentimentstring, nullable
topicsarray of objects
summarystring
challengesstring, nullable
opportunitiesstring, nullable
solutionsstring, nullable
actionItemsarray of objects
taskstring
ownerstring, nullable
ownerEmailstring, nullable
dueDatestring, nullable
YYYY-MM-DD, or a description such as "next week"
completeboolean
opportunitiesarray of objects
BANT qualification per opportunity discussed
Show 7 child fields
solutionstring, nullable
companystring, nullable
competitorstring, nullable
budgetstring, nullable
authoritystring, nullable
needstring, nullable
timingstring, nullable
risksarray of objects
riskstring
severitystring
evidencestring, nullable
intelligenceobject, nullable
Show 56 child fields
meetingInsightsarray of objects
titlestring
insightstring
typeenum
strengthriskactionintelligence
nextStepsarray of objects
prioritynumber
taskstring
reasonstring
urgencyenum
immediatethis_weekthis_month
whatsWorkingarray of objects
titlestring
detailstring
strengthenum
strongmoderateweak
speakerNamestring, nullable
whatsAtRiskarray of objects
titlestring
detailstring
strengthenum
strongmoderateweak
speakerNamestring, nullable
keyMomentsarray of objects
titlestring
detailstring
typeenum
breakthroughconcerncommitmentobjection
speakerNamestring, nullable
dealMovementobject, nullable
directionenum
advancedneutralconcerning
summarystring
strengthenedarray of string
Sales-methodology dimension names
weakenedarray of string
buyerEngagementenum, nullable
Overall; per-person engagement is on attendees
highmediumlow
stakeholderIntelligenceobject, nullable
newStakeholdersarray of string
championStatusenum
identifiedactiveabsentunknown
economicBuyerStatusenum
presentnamedunknown
decisionMakerStatusenum
confirmedimpliedunknown
singleThreadedRiskboolean
competitiveIntelligenceobject, nullable
competitorsMentionedarray of string
currentVendorRiskboolean
competitiveContextstring
timelineIntelligenceobject, nullable
hasTimelineboolean
urgencyLevelenum
highmediumlownone
forcingEventsarray of string
targetDatesarray of string
timelineSlippedboolean
commercialIntelligenceobject, nullable
pricingDiscussedboolean
proposalRequestedboolean
budgetStatusenum
confirmedimpliedconcernunknown
negotiationStartedboolean
discountRequestedboolean
objectionsobject
openarray of string
What the buyer said
resolvedarray of string
generatedAtdate-time, nullable
voiceMemosarray of objects
namestring, nullable
createdAtdate-time
durationSecsnumber, nullable
statusstring

Errors

Request
curl "https://api.eqall.com/external/meetings/{meetingId}?include=prep%2Crecap" \
  -H "Authorization: Bearer $EQALL_KEY"
Response · 200
{
  "meetingId": "d41f6c8a-2e93-4b1a-a7f0-5c3e8b9d1f26",
  "title": "Acme <> YourCo pilot review",
  "start": "2026-10-21T17:00:00.000Z",
  "end": "2026-10-21T17:30:00.000Z",
  "allDay": false,
  "status": "completed",
  "external": true,
  "hasRecap": true,
  "location": null,
  "videoUrl": "https://meet.google.com/abc-defg-hij",
  "videoProvider": "Google Meet",
  "description": "Review pilot results and agree next steps.",
  "opportunity": {
    "name": "Acme - Line Automation Pilot"
  },
  "companies": [
    {
      "companyId": "b3e9d2c1-7a44-4f0e-8d6b-91c5e2f4a830",
      "name": "Acme Corp",
      "internal": false
    },
    {
      "companyId": "5e2c8f1a-3d7b-4a96-8e0c-1b4f7a2d9c63",
      "name": "YourCo",
      "internal": true
    }
  ],
  "attendees": [
    {
      "contactId": "6f1c2a9e-4b7d-4e2a-9c51-2d8f0e3b7a14",
      "firstName": "Jane",
      "lastName": "Doe",
      "email": "jane.doe@acme.com",
      "title": "VP of Operations",
      "company": {
        "companyId": "b3e9d2c1-7a44-4f0e-8d6b-91c5e2f4a830",
        "name": "Acme Corp"
      },
      "internal": false,
      "organizer": false,
      "optional": false,
      "invited": true,
      "response": "accepted",
      "sentiment": "positive",
      "advocacy": "advocate",
      "spoke": true,
      "engagement": "high"
    },
    {
      "contactId": null,
      "firstName": "Raj",
      "lastName": "Patel",
      "email": null,
      "title": "Plant Manager",
      "company": {
        "companyId": null,
        "name": "Acme Corp"
      },
      "internal": false,
      "organizer": false,
      "optional": false,
      "invited": false,
      "response": null,
      "sentiment": "neutral",
      "advocacy": "neutral",
      "spoke": true,
      "engagement": "medium"
    }
  ],
  "recap": {
    "recap": "Acme confirmed the pilot hit its uptime target and wants pricing for a three-line rollout.",
    "summary": "Positive pilot review; buyer asked for a rollout proposal and security documentation.",
    "sentiment": "positive",
    "topics": [
      {
        "summary": "Pilot results",
        "challenges": "Unplanned downtime on line 2",
        "opportunities": "Expand to three lines",
        "solutions": "Predictive maintenance module"
      }
    ],
    "actionItems": [
      {
        "task": "Send rollout proposal for three lines",
        "owner": "Sam Rivera",
        "ownerEmail": "sam@yourco.com",
        "dueDate": "2026-10-28",
        "complete": false
      }
    ],
    "opportunities": [
      {
        "solution": "Line Automation rollout",
        "company": "Acme Corp",
        "competitor": null,
        "budget": "Approved for Q1",
        "authority": "Jane Doe",
        "need": "Reduce downtime",
        "timing": "Q1 2027"
      }
    ],
    "risks": [
      {
        "risk": "Security review not started",
        "severity": "Medium",
        "evidence": "We still need your SOC 2 report."
      }
    ],
    "intelligence": {
      "meetingInsights": [
        {
          "title": "Champion confirmed",
          "insight": "Jane is pushing the rollout internally.",
          "type": "strength"
        }
      ],
      "nextSteps": [
        {
          "priority": 1,
          "task": "Send the SOC 2 report",
          "reason": "Unblocks procurement",
          "urgency": "this_week"
        }
      ],
      "whatsWorking": [
        {
          "title": "Clear pain identified",
          "detail": "Downtime costs Acme about $40k per incident.",
          "strength": "strong",
          "speakerName": "Jane Doe"
        }
      ],
      "whatsAtRisk": [
        {
          "title": "Security review pending",
          "detail": "Procurement requires SOC 2 before signing.",
          "strength": "moderate",
          "speakerName": null
        }
      ],
      "keyMoments": [
        {
          "title": "Budget confirmed",
          "detail": "Jane Doe: budget is approved for Q1.",
          "type": "commitment",
          "speakerName": "Jane Doe"
        }
      ],
      "dealMovement": {
        "direction": "advanced",
        "summary": "This meeting produced 2 positive signals and moved the deal forward",
        "strengthened": [
          "Pain / Problem",
          "Stakeholders / Decision"
        ],
        "weakened": []
      },
      "buyerEngagement": "high",
      "stakeholderIntelligence": {
        "newStakeholders": [
          "Raj Patel"
        ],
        "championStatus": "active",
        "economicBuyerStatus": "named",
        "decisionMakerStatus": "implied",
        "singleThreadedRisk": false
      },
      "competitiveIntelligence": {
        "competitorsMentioned": [],
        "currentVendorRisk": false,
        "competitiveContext": ""
      },
      "timelineIntelligence": {
        "hasTimeline": true,
        "urgencyLevel": "medium",
        "forcingEvents": [],
        "targetDates": [
          "Q1 2027"
        ],
        "timelineSlipped": false
      },
      "commercialIntelligence": {
        "pricingDiscussed": true,
        "proposalRequested": true,
        "budgetStatus": "confirmed",
        "negotiationStarted": false,
        "discountRequested": false
      },
      "objections": {
        "open": [
          "We still need your SOC 2 report."
        ],
        "resolved": []
      },
      "generatedAt": "2026-10-21T18:05:00.000Z"
    },
    "voiceMemos": []
  }
}