{"openapi":"3.0.0","paths":{"/external/whoami":{"get":{"description":"Shows the user, company and permissions the API key acts as.","operationId":"whoami","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalWhoAmIDto"}}}},"401":{"description":"Missing, unknown or revoked API key"},"429":{"description":"Rate limit exceeded (per key)"}},"security":[{"bearer":[]}],"summary":"Check a key","tags":["Account"]}},"/external/contacts":{"get":{"description":"Search the user's network by name, email or company. Every word must match (\"jane acme\").","operationId":"findContacts","parameters":[{"name":"limit","required":false,"in":"query","description":"Results per page (default 20, max 50)","schema":{"example":20,"type":"number"}},{"name":"cursor","required":false,"in":"query","description":"nextCursor from the previous page","schema":{"type":"string"}},{"name":"query","required":true,"in":"query","description":"Name, email and/or company words; every word must match. At least 2 characters.","schema":{"example":"jane acme","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalContactSearchResultDto"}}}},"401":{"description":"Missing, unknown or revoked API key"},"422":{"description":"Invalid query, limit or cursor"},"429":{"description":"Rate limit exceeded (per key)"}},"security":[{"bearer":[]}],"summary":"Find contacts","tags":["Contacts"],"x-mcp-tool":"findContact"},"post":{"description":"Adds a person to the user's network, creating them and their company (from the email domain) if new. Adding an existing person returns them. Needs the write:contacts permission.","operationId":"createContact","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateExternalContactDto"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalContactDto"}}}},"401":{"description":"Missing, unknown or revoked API key"},"403":{"description":"The key lacks write:contacts"},"422":{"description":"Missing name or invalid email"},"429":{"description":"Rate limit exceeded (per key)"}},"security":[{"bearer":[]}],"summary":"Add a contact","tags":["Contacts"],"x-mcp-tool":"createContact"}},"/external/contacts/{contactId}":{"get":{"description":"Profile, EQALL insights (talking points, communication style) and last meeting recap.","operationId":"getContactDetails","parameters":[{"name":"contactId","required":true,"in":"path","description":"Public contact ID from contact search","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalContactDetailsDto"}}}},"401":{"description":"Missing, unknown or revoked API key"},"404":{"description":"Contact doesn't exist or isn't in the user's network"},"429":{"description":"Rate limit exceeded (per key)"}},"security":[{"bearer":[]}],"summary":"Get contact details","tags":["Contacts"],"x-mcp-tool":"getContactDetails"}},"/external/companies":{"get":{"description":"Search the user's own company and the companies of people in their network, by name or domain.","operationId":"findCompanies","parameters":[{"name":"limit","required":false,"in":"query","description":"Results per page (default 20, max 50)","schema":{"example":20,"type":"number"}},{"name":"cursor","required":false,"in":"query","description":"nextCursor from the previous page","schema":{"type":"string"}},{"name":"query","required":true,"in":"query","description":"Company name or domain text, e.g. \"acme\" or \"acme.com\". At least 2 characters.","schema":{"example":"acme","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalCompanySearchResultDto"}}}},"401":{"description":"Missing, unknown or revoked API key"},"422":{"description":"Invalid query, limit or cursor"},"429":{"description":"Rate limit exceeded (per key)"}},"security":[{"bearer":[]}],"summary":"Find companies","tags":["Companies"],"x-mcp-tool":"findCompany"}},"/external/companies/{companyId}":{"get":{"description":"Profile, products, partners, leadership, finance (public companies), EQALL insights, news and last meeting recap.","operationId":"getCompanyDetails","parameters":[{"name":"companyId","required":true,"in":"path","description":"Public company ID from company search or a contact","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalCompanyDetailsDto"}}}},"401":{"description":"Missing, unknown or revoked API key"},"404":{"description":"Company doesn't exist or the user can't see it"},"429":{"description":"Rate limit exceeded (per key)"}},"security":[{"bearer":[]}],"summary":"Get company details","tags":["Companies"],"x-mcp-tool":"getCompanyDetails"}},"/external/meetings":{"get":{"description":"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.","operationId":"findMeetings","parameters":[{"name":"limit","required":false,"in":"query","description":"Results per page (default 20, max 50)","schema":{"example":20,"type":"number"}},{"name":"cursor","required":false,"in":"query","description":"nextCursor from the previous page","schema":{"type":"string"}},{"name":"title","required":false,"in":"query","description":"Words from the meeting title (fuzzy match)","schema":{"example":"quarterly review","type":"string"}},{"name":"attendee","required":false,"in":"query","description":"An attendee's name (fuzzy match)","schema":{"example":"jane","type":"string"}},{"name":"company","required":false,"in":"query","description":"A company that attended (fuzzy match)","schema":{"example":"acme","type":"string"}},{"name":"from","required":false,"in":"query","description":"Date (in the user's timezone) or ISO date-time","schema":{"example":"2026-10-01","type":"string"}},{"name":"to","required":false,"in":"query","description":"Date (in the user's timezone) or ISO date-time","schema":{"example":"2026-10-31","type":"string"}},{"name":"when","required":false,"in":"query","description":"Used when from/to are not given","schema":{"type":"string","enum":["past","upcoming","all"]}},{"name":"type","required":false,"in":"query","description":"external: someone from outside your company attended; internal: only your company","schema":{"type":"string","enum":["external","internal","all"]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalMeetingSearchResultDto"}}}},"401":{"description":"Missing, unknown or revoked API key"},"422":{"description":"Invalid filter, limit or cursor"},"429":{"description":"Rate limit exceeded (per key)"}},"security":[{"bearer":[]}],"summary":"Find meetings","tags":["Meetings"],"x-mcp-tool":"findMeetings"}},"/external/meetings/{meetingId}":{"get":{"description":"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.","operationId":"getMeetingDetails","parameters":[{"name":"meetingId","required":true,"in":"path","description":"Public meeting ID from meeting search","schema":{"type":"string"}},{"name":"include","required":false,"in":"query","description":"Comma-separated; defaults to prep for upcoming meetings and recap for past ones","schema":{"type":"array","items":{"type":"string","enum":["prep","recap"]}}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalMeetingDetailsDto"}}}},"401":{"description":"Missing, unknown or revoked API key"},"404":{"description":"Meeting doesn't exist, or the user isn't invited or declined"},"429":{"description":"Rate limit exceeded (per key)"}},"security":[{"bearer":[]}],"summary":"Get meeting details","tags":["Meetings"],"x-mcp-tool":"getMeetingDetails"}},"/mcp":{"post":{"description":"Model Context Protocol over Streamable HTTP, stateless. Send JSON-RPC 2.0 messages; no initialize call is required. Requires the header `Accept: application/json, text/event-stream`. Responses arrive as a server-sent event (`data:` line). Tools: findContact, getContactDetails, createContact, findCompany, getCompanyDetails, findMeetings, getMeetingDetails — call tools/list for their input schemas.","operationId":"handle","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"},"examples":{"list":{"summary":"List tools","value":{"jsonrpc":"2.0","id":1,"method":"tools/list"}},"call":{"summary":"Call a tool","value":{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"findMeetings","arguments":{"when":"past","type":"external","limit":5}}}}}}}},"responses":{"200":{"description":"JSON-RPC response as a text/event-stream message. Tool results are JSON text in result.content[0].text; result.isError is true on failure."},"401":{"description":"Missing, unknown or revoked API key"}},"security":[{"bearer":[]}],"summary":"MCP endpoint (for AI agents)","tags":["MCP"]}}},"info":{"title":"EQALL External API","description":"Read EQALL contacts, companies and meetings — and add contacts — from your own apps and AI agents.\n\n**Authentication:** create an API key in EQALL under *Settings → Integrations → API & AI agents* and send it as\n`Authorization: Bearer eqk_…`. A key acts as the user who created it and sees only what they can see in EQALL.\n\n**AI agents** should use the MCP endpoint (`POST /mcp`); the same operations are available as plain REST below.\n\n**IDs** are public UUIDs. **Search results** are paged: pass `nextCursor` back as `cursor`; `null` means the last page.\n**Rate limit:** 60 requests per minute per key (429 when exceeded).","version":"1.0","contact":{}},"tags":[],"servers":[],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"API key (eqk_…)","type":"http"}},"schemas":{"WhoAmIUserDto":{"type":"object","properties":{"contactId":{"type":"string","description":"The key user's public ID (same as their contactId)"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"}},"required":["contactId","firstName","lastName","email"]},"WhoAmICompanyDto":{"type":"object","properties":{"companyId":{"type":"string","description":"Public company ID"},"name":{"type":"string"}},"required":["companyId","name"]},"WhoAmIKeyDto":{"type":"object","properties":{"type":{"type":"string","enum":["apikey","oauth"],"description":"An EQALL API key, or an OAuth token issued to an AI tool"},"prefix":{"type":"string","example":"eqk_AbCd1234","nullable":true,"description":"First characters of the key (API keys only)"},"scopes":{"example":["read"],"type":"array","items":{"type":"string"}}},"required":["type","prefix","scopes"]},"ExternalWhoAmIDto":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/WhoAmIUserDto"},"company":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/WhoAmICompanyDto"}]},"apiKey":{"$ref":"#/components/schemas/WhoAmIKeyDto"}},"required":["user","company","apiKey"]},"ExternalCompanyRefDto":{"type":"object","properties":{"companyId":{"type":"string","description":"Public company ID"},"name":{"type":"string","example":"Acme Corp"},"domain":{"type":"string","example":"acme.com","nullable":true}},"required":["companyId","name","domain"]},"ExternalContactDto":{"type":"object","properties":{"contactId":{"type":"string","description":"Public contact ID"},"firstName":{"type":"string","nullable":true,"example":"Jane"},"lastName":{"type":"string","nullable":true,"example":"Doe"},"email":{"type":"string","nullable":true},"title":{"type":"string","nullable":true,"example":"VP of Operations"},"company":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ExternalCompanyRefDto"}]}},"required":["contactId","firstName","lastName","email","title","company"]},"ExternalContactSearchResultDto":{"type":"object","properties":{"contacts":{"type":"array","items":{"$ref":"#/components/schemas/ExternalContactDto"}},"nextCursor":{"type":"string","nullable":true,"description":"Pass back as `cursor` for the next page; null on the last page"}},"required":["contacts","nextCursor"]},"WorkHistoryDto":{"type":"object","properties":{"companyName":{"type":"string"},"role":{"type":"string","nullable":true},"fromDate":{"format":"date-time","type":"string","nullable":true},"toDate":{"format":"date-time","type":"string","nullable":true},"isCurrent":{"type":"boolean"}},"required":["companyName","role","fromDate","toDate","isCurrent"]},"EducationDto":{"type":"object","properties":{"school":{"type":"string","nullable":true},"degree":{"type":"string","nullable":true},"fieldOfStudy":{"type":"string","nullable":true},"fromDate":{"format":"date-time","type":"string","nullable":true},"toDate":{"format":"date-time","type":"string","nullable":true}},"required":["school","degree","fieldOfStudy","fromDate","toDate"]},"ImportantDateDto":{"type":"object","properties":{"type":{"type":"string","example":"Birthday"},"date":{"type":"string","example":"06-14","description":"YYYY-MM-DD, or MM-DD when the year is unknown"}},"required":["type","date"]},"ExternalNewsDto":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"date":{"format":"date-time","type":"string"},"url":{"type":"string"}},"required":["title","description","date","url"]},"ExternalInsightDto":{"type":"object","properties":{"title":{"type":"string","nullable":true,"example":"Communication Style"},"insight":{"type":"string","description":"Plain text; \"- \" bullets"}},"required":["title","insight"]},"ExternalContactDetailsDto":{"type":"object","properties":{"contactId":{"type":"string","description":"Public contact ID"},"firstName":{"type":"string","nullable":true,"example":"Jane"},"lastName":{"type":"string","nullable":true,"example":"Doe"},"email":{"type":"string","nullable":true},"title":{"type":"string","nullable":true,"example":"VP of Operations"},"company":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ExternalCompanyRefDto"}]},"phone":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"timezone":{"type":"string","nullable":true},"pronoun":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true},"about":{"type":"string","nullable":true},"languages":{"type":"array","items":{"type":"string"}},"skills":{"type":"array","items":{"type":"string"}},"hobbies":{"type":"array","items":{"type":"string"}},"volunteering":{"type":"array","items":{"type":"string"}},"workHistory":{"type":"array","items":{"$ref":"#/components/schemas/WorkHistoryDto"}},"education":{"type":"array","items":{"$ref":"#/components/schemas/EducationDto"}},"importantDates":{"type":"array","items":{"$ref":"#/components/schemas/ImportantDateDto"}},"news":{"description":"Up to 5","type":"array","items":{"$ref":"#/components/schemas/ExternalNewsDto"}},"insights":{"description":"Talking points, including communication style","type":"array","items":{"$ref":"#/components/schemas/ExternalInsightDto"}},"lastMeetingRecap":{"type":"string","nullable":true,"description":"Recap of the user's last meeting with this contact"}},"required":["contactId","firstName","lastName","email","title","company","phone","location","timezone","pronoun","summary","about","languages","skills","hobbies","volunteering","workHistory","education","importantDates","news","insights","lastMeetingRecap"]},"CreateExternalContactDto":{"type":"object","properties":{"firstName":{"type":"string","example":"Jane","description":"Contact's first name"},"lastName":{"type":"string","example":"Doe","description":"Contact's last name"},"email":{"type":"string","example":"jane.doe@acme.com","description":"Contact's email; identifies them, so adding an existing email returns that contact"}},"required":["firstName","lastName","email"]},"ExternalCompanyDto":{"type":"object","properties":{"companyId":{"type":"string","description":"Public company ID"},"name":{"type":"string","example":"Acme Corp"},"domain":{"type":"string","nullable":true,"example":"acme.com"}},"required":["companyId","name","domain"]},"ExternalCompanySearchResultDto":{"type":"object","properties":{"companies":{"type":"array","items":{"$ref":"#/components/schemas/ExternalCompanyDto"}},"nextCursor":{"type":"string","nullable":true,"description":"Pass back as `cursor` for the next page; null on the last page"}},"required":["companies","nextCursor"]},"AddressDto":{"type":"object","properties":{"name":{"type":"string","nullable":true},"headquarters":{"type":"boolean"},"line1":{"type":"string","nullable":true},"line2":{"type":"string","nullable":true},"line3":{"type":"string","nullable":true},"line4":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"postalCode":{"type":"string","nullable":true},"countryCode":{"type":"string","nullable":true}},"required":["name","headquarters","line1","line2","line3","line4","city","state","postalCode","countryCode"]},"PartnershipDto":{"type":"object","properties":{"partner":{"type":"string","example":"AWS"},"type":{"type":"string","nullable":true,"example":"Cloud Services Provider"}},"required":["partner","type"]},"EmployeesDto":{"type":"object","properties":{"number":{"type":"number","nullable":true},"rangeLow":{"type":"number","nullable":true},"rangeHigh":{"type":"number","nullable":true,"description":"null when open-ended (e.g. 10,001+)"}},"required":["number","rangeLow","rangeHigh"]},"StockDto":{"type":"object","properties":{"symbol":{"type":"string","example":"ACME"},"exchange":{"type":"string","nullable":true,"example":"NYSE"}},"required":["symbol","exchange"]},"ServiceDto":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["name","description"]},"ExecutiveDto":{"type":"object","properties":{"name":{"type":"string"},"role":{"type":"string","nullable":true}},"required":["name","role"]},"FinanceDto":{"type":"object","properties":{"financialPerformance":{"type":"string","nullable":true},"salesStrategy":{"type":"string","nullable":true},"keyRisks":{"type":"array","items":{"type":"string"}},"annualReportLink":{"type":"string","nullable":true}},"required":["financialPerformance","salesStrategy","keyRisks","annualReportLink"]},"ExternalCompanyDetailsDto":{"type":"object","properties":{"companyId":{"type":"string","description":"Public company ID"},"name":{"type":"string"},"domain":{"type":"string","nullable":true},"websiteUrl":{"type":"string","nullable":true},"linkedInId":{"type":"string","nullable":true,"example":"acme-corp"},"linkedInUrl":{"type":"string","nullable":true},"phone":{"type":"string","nullable":true},"contactEmail":{"type":"string","nullable":true},"overview":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"industry":{"type":"array","items":{"type":"string"}},"specialities":{"type":"array","items":{"type":"string"}},"duns":{"type":"string","nullable":true},"fiscalYearEnd":{"type":"string","nullable":true,"example":"1231","description":"MMDD"},"stateOfIncorporation":{"type":"string","nullable":true,"example":"DE"},"addresses":{"type":"array","items":{"$ref":"#/components/schemas/AddressDto"}},"partnerships":{"type":"array","items":{"$ref":"#/components/schemas/PartnershipDto"}},"employees":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/EmployeesDto"}]},"stocks":{"type":"array","items":{"$ref":"#/components/schemas/StockDto"}},"services":{"type":"array","items":{"$ref":"#/components/schemas/ServiceDto"}},"executiveTeam":{"type":"array","items":{"$ref":"#/components/schemas/ExecutiveDto"}},"finance":{"nullable":true,"description":"Public (SEC-filing) companies only","allOf":[{"$ref":"#/components/schemas/FinanceDto"}]},"insights":{"description":"Talking points, tailored to what the user's company sells","type":"array","items":{"$ref":"#/components/schemas/ExternalInsightDto"}},"newsSummary":{"type":"string","nullable":true},"news":{"description":"Up to 5","type":"array","items":{"$ref":"#/components/schemas/ExternalNewsDto"}},"lastMeetingRecap":{"type":"string","nullable":true}},"required":["companyId","name","domain","websiteUrl","linkedInId","linkedInUrl","phone","contactEmail","overview","description","industry","specialities","duns","fiscalYearEnd","stateOfIncorporation","addresses","partnerships","employees","stocks","services","executiveTeam","finance","insights","newsSummary","news","lastMeetingRecap"]},"MeetingCompanyRefDto":{"type":"object","properties":{"companyId":{"type":"string","nullable":true},"name":{"type":"string"}},"required":["companyId","name"]},"MeetingSummaryAttendeeDto":{"type":"object","properties":{"contactId":{"type":"string","nullable":true},"name":{"type":"string"},"email":{"type":"string","nullable":true},"company":{"type":"string","nullable":true,"description":"Company name"}},"required":["contactId","name","email","company"]},"ExternalMeetingSummaryDto":{"type":"object","properties":{"meetingId":{"type":"string","description":"Public meeting ID"},"title":{"type":"string"},"start":{"format":"date-time","type":"string"},"end":{"format":"date-time","type":"string"},"allDay":{"type":"boolean"},"status":{"type":"string","enum":["upcoming","in_progress","completed","cancelled"]},"external":{"type":"boolean","description":"Someone from outside the user's company (personal emails included) attended"},"hasRecap":{"type":"boolean","description":"A transcript / recap exists"},"companies":{"type":"array","items":{"$ref":"#/components/schemas/MeetingCompanyRefDto"}},"attendees":{"description":"Declined attendees are omitted","type":"array","items":{"$ref":"#/components/schemas/MeetingSummaryAttendeeDto"}}},"required":["meetingId","title","start","end","allDay","status","external","hasRecap","companies","attendees"]},"ExternalMeetingSearchResultDto":{"type":"object","properties":{"meetings":{"type":"array","items":{"$ref":"#/components/schemas/ExternalMeetingSummaryDto"}},"nextCursor":{"type":"string","nullable":true,"description":"Pass back as `cursor` (with the same filters) for the next page; null on the last page"}},"required":["meetings","nextCursor"]},"MeetingOpportunityDto":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},"MeetingDetailsCompanyDto":{"type":"object","properties":{"companyId":{"type":"string","nullable":true},"name":{"type":"string"},"internal":{"type":"boolean","description":"The user's own company"}},"required":["companyId","name","internal"]},"ExternalMeetingAttendeeDto":{"type":"object","properties":{"contactId":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"company":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/MeetingCompanyRefDto"}]},"internal":{"type":"boolean","description":"From the user's own company"},"organizer":{"type":"boolean"},"optional":{"type":"boolean"},"invited":{"type":"boolean","description":"False for people who spoke but were not on the calendar invite"},"response":{"type":"string","enum":["accepted","tentative","declined","pending"],"nullable":true,"description":"null when not invited"},"sentiment":{"type":"string","nullable":true,"example":"positive"},"advocacy":{"type":"string","nullable":true,"example":"advocate"},"spoke":{"type":"boolean","nullable":true,"description":"null when the meeting has no transcript"},"engagement":{"type":"string","enum":["high","medium","low"],"nullable":true}},"required":["contactId","firstName","lastName","email","title","company","internal","organizer","optional","invited","response","sentiment","advocacy","spoke","engagement"]},"AgendaItemDto":{"type":"object","properties":{"description":{"type":"string"},"durationInMinutes":{"type":"number","nullable":true},"subTopics":{"type":"array","items":{"type":"string"}}},"required":["description","durationInMinutes","subTopics"]},"AgendaDto":{"type":"object","properties":{"durationInMinutes":{"type":"number","nullable":true},"items":{"type":"array","items":{"$ref":"#/components/schemas/AgendaItemDto"}}},"required":["durationInMinutes","items"]},"OpportunityAngleDto":{"type":"object","properties":{"opportunity":{"type":"string"},"description":{"type":"string","nullable":true}},"required":["opportunity","description"]},"TalkTrackDto":{"type":"object","properties":{"persona":{"type":"string","example":"Champion"},"description":{"type":"string"}},"required":["persona","description"]},"AttendeePersonaDto":{"type":"object","properties":{"name":{"type":"string"},"primaryPersona":{"type":"string","nullable":true},"secondaryPersona":{"type":"string","nullable":true},"roleAssumption":{"type":"string","nullable":true}},"required":["name","primaryPersona","secondaryPersona","roleAssumption"]},"RoleChallengeDto":{"type":"object","properties":{"role":{"type":"string"},"challenge":{"type":"string"}},"required":["role","challenge"]},"CompanyOverviewDto":{"type":"object","properties":{"companyId":{"type":"string","nullable":true},"name":{"type":"string"},"overview":{"type":"string","nullable":true}},"required":["companyId","name","overview"]},"PreviousMeetingDto":{"type":"object","properties":{"meetingId":{"type":"string","nullable":true},"title":{"type":"string"},"start":{"format":"date-time","type":"string"},"recap":{"type":"string","nullable":true}},"required":["meetingId","title","start","recap"]},"ExternalMeetingPrepDto":{"type":"object","properties":{"agenda":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/AgendaDto"}]},"sharedPriorities":{"type":"array","items":{"type":"string"}},"opportunityAngles":{"type":"array","items":{"$ref":"#/components/schemas/OpportunityAngleDto"}},"talkTracks":{"type":"array","items":{"$ref":"#/components/schemas/TalkTrackDto"}},"attendeePersonas":{"type":"array","items":{"$ref":"#/components/schemas/AttendeePersonaDto"}},"roleChallenges":{"type":"array","items":{"$ref":"#/components/schemas/RoleChallengeDto"}},"communicationStyle":{"description":"How to communicate with the attendees","type":"array","items":{"type":"string"}},"companyOverviews":{"type":"array","items":{"$ref":"#/components/schemas/CompanyOverviewDto"}},"news":{"type":"array","items":{"$ref":"#/components/schemas/ExternalNewsDto"}},"previousMeetings":{"description":"Up to 3 related earlier meetings with a recap","type":"array","items":{"$ref":"#/components/schemas/PreviousMeetingDto"}}},"required":["agenda","sharedPriorities","opportunityAngles","talkTracks","attendeePersonas","roleChallenges","communicationStyle","companyOverviews","news","previousMeetings"]},"TopicDto":{"type":"object","properties":{"summary":{"type":"string"},"challenges":{"type":"string","nullable":true},"opportunities":{"type":"string","nullable":true},"solutions":{"type":"string","nullable":true}},"required":["summary","challenges","opportunities","solutions"]},"ActionItemDto":{"type":"object","properties":{"task":{"type":"string"},"owner":{"type":"string","nullable":true},"ownerEmail":{"type":"string","nullable":true},"dueDate":{"type":"string","nullable":true,"description":"YYYY-MM-DD, or a description such as \"next week\""},"complete":{"type":"boolean"}},"required":["task","owner","ownerEmail","dueDate","complete"]},"BantOpportunityDto":{"type":"object","properties":{"solution":{"type":"string","nullable":true},"company":{"type":"string","nullable":true},"competitor":{"type":"string","nullable":true},"budget":{"type":"string","nullable":true},"authority":{"type":"string","nullable":true},"need":{"type":"string","nullable":true},"timing":{"type":"string","nullable":true}},"required":["solution","company","competitor","budget","authority","need","timing"]},"RiskDto":{"type":"object","properties":{"risk":{"type":"string"},"severity":{"type":"string","example":"High"},"evidence":{"type":"string","nullable":true}},"required":["risk","severity","evidence"]},"MeetingInsightDto":{"type":"object","properties":{"title":{"type":"string"},"insight":{"type":"string"},"type":{"type":"string","enum":["strength","risk","action","intelligence"]}},"required":["title","insight","type"]},"NextStepDto":{"type":"object","properties":{"priority":{"type":"number"},"task":{"type":"string"},"reason":{"type":"string"},"urgency":{"type":"string","enum":["immediate","this_week","this_month"]}},"required":["priority","task","reason","urgency"]},"SignalDto":{"type":"object","properties":{"title":{"type":"string"},"detail":{"type":"string"},"strength":{"type":"string","enum":["strong","moderate","weak"]},"speakerName":{"type":"string","nullable":true}},"required":["title","detail","strength","speakerName"]},"KeyMomentDto":{"type":"object","properties":{"title":{"type":"string"},"detail":{"type":"string"},"type":{"type":"string","enum":["breakthrough","concern","commitment","objection"]},"speakerName":{"type":"string","nullable":true}},"required":["title","detail","type","speakerName"]},"DealMovementDto":{"type":"object","properties":{"direction":{"type":"string","enum":["advanced","neutral","concerning"]},"summary":{"type":"string"},"strengthened":{"example":["Stakeholders / Decision"],"description":"Sales-methodology dimension names","type":"array","items":{"type":"string"}},"weakened":{"example":["Engagement / Momentum"],"type":"array","items":{"type":"string"}}},"required":["direction","summary","strengthened","weakened"]},"StakeholderIntelligenceDto":{"type":"object","properties":{"newStakeholders":{"type":"array","items":{"type":"string"}},"championStatus":{"type":"string","enum":["identified","active","absent","unknown"]},"economicBuyerStatus":{"type":"string","enum":["present","named","unknown"]},"decisionMakerStatus":{"type":"string","enum":["confirmed","implied","unknown"]},"singleThreadedRisk":{"type":"boolean"}},"required":["newStakeholders","championStatus","economicBuyerStatus","decisionMakerStatus","singleThreadedRisk"]},"CompetitiveIntelligenceDto":{"type":"object","properties":{"competitorsMentioned":{"type":"array","items":{"type":"string"}},"currentVendorRisk":{"type":"boolean"},"competitiveContext":{"type":"string"}},"required":["competitorsMentioned","currentVendorRisk","competitiveContext"]},"TimelineIntelligenceDto":{"type":"object","properties":{"hasTimeline":{"type":"boolean"},"urgencyLevel":{"type":"string","enum":["high","medium","low","none"]},"forcingEvents":{"type":"array","items":{"type":"string"}},"targetDates":{"type":"array","items":{"type":"string"}},"timelineSlipped":{"type":"boolean"}},"required":["hasTimeline","urgencyLevel","forcingEvents","targetDates","timelineSlipped"]},"CommercialIntelligenceDto":{"type":"object","properties":{"pricingDiscussed":{"type":"boolean"},"proposalRequested":{"type":"boolean"},"budgetStatus":{"type":"string","enum":["confirmed","implied","concern","unknown"]},"negotiationStarted":{"type":"boolean"},"discountRequested":{"type":"boolean"}},"required":["pricingDiscussed","proposalRequested","budgetStatus","negotiationStarted","discountRequested"]},"ObjectionsDto":{"type":"object","properties":{"open":{"description":"What the buyer said","type":"array","items":{"type":"string"}},"resolved":{"type":"array","items":{"type":"string"}}},"required":["open","resolved"]},"ExternalMeetingIntelligenceDto":{"type":"object","properties":{"meetingInsights":{"type":"array","items":{"$ref":"#/components/schemas/MeetingInsightDto"}},"nextSteps":{"type":"array","items":{"$ref":"#/components/schemas/NextStepDto"}},"whatsWorking":{"type":"array","items":{"$ref":"#/components/schemas/SignalDto"}},"whatsAtRisk":{"type":"array","items":{"$ref":"#/components/schemas/SignalDto"}},"keyMoments":{"type":"array","items":{"$ref":"#/components/schemas/KeyMomentDto"}},"dealMovement":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/DealMovementDto"}]},"buyerEngagement":{"type":"string","enum":["high","medium","low"],"nullable":true,"description":"Overall; per-person engagement is on attendees"},"stakeholderIntelligence":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/StakeholderIntelligenceDto"}]},"competitiveIntelligence":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/CompetitiveIntelligenceDto"}]},"timelineIntelligence":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/TimelineIntelligenceDto"}]},"commercialIntelligence":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/CommercialIntelligenceDto"}]},"objections":{"$ref":"#/components/schemas/ObjectionsDto"},"generatedAt":{"format":"date-time","type":"string","nullable":true}},"required":["meetingInsights","nextSteps","whatsWorking","whatsAtRisk","keyMoments","dealMovement","buyerEngagement","stakeholderIntelligence","competitiveIntelligence","timelineIntelligence","commercialIntelligence","objections","generatedAt"]},"VoiceMemoDto":{"type":"object","properties":{"name":{"type":"string","nullable":true},"createdAt":{"format":"date-time","type":"string"},"durationSecs":{"type":"number","nullable":true},"status":{"type":"string"}},"required":["name","createdAt","durationSecs","status"]},"ExternalMeetingRecapDto":{"type":"object","properties":{"recap":{"type":"string","nullable":true},"summary":{"type":"string","nullable":true},"sentiment":{"type":"string","nullable":true,"example":"positive"},"topics":{"type":"array","items":{"$ref":"#/components/schemas/TopicDto"}},"actionItems":{"type":"array","items":{"$ref":"#/components/schemas/ActionItemDto"}},"opportunities":{"description":"BANT qualification per opportunity discussed","type":"array","items":{"$ref":"#/components/schemas/BantOpportunityDto"}},"risks":{"type":"array","items":{"$ref":"#/components/schemas/RiskDto"}},"intelligence":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ExternalMeetingIntelligenceDto"}]},"voiceMemos":{"type":"array","items":{"$ref":"#/components/schemas/VoiceMemoDto"}}},"required":["recap","summary","sentiment","topics","actionItems","opportunities","risks","intelligence","voiceMemos"]},"ExternalMeetingDetailsDto":{"type":"object","properties":{"meetingId":{"type":"string","description":"Public meeting ID"},"title":{"type":"string"},"start":{"format":"date-time","type":"string"},"end":{"format":"date-time","type":"string"},"allDay":{"type":"boolean"},"status":{"type":"string","enum":["upcoming","in_progress","completed","cancelled"]},"external":{"type":"boolean"},"hasRecap":{"type":"boolean"},"location":{"type":"string","nullable":true},"videoUrl":{"type":"string","nullable":true},"videoProvider":{"type":"string","nullable":true,"example":"Google Meet"},"description":{"type":"string","nullable":true},"opportunity":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/MeetingOpportunityDto"}]},"companies":{"type":"array","items":{"$ref":"#/components/schemas/MeetingDetailsCompanyDto"}},"attendees":{"type":"array","items":{"$ref":"#/components/schemas/ExternalMeetingAttendeeDto"}},"prep":{"description":"Present when include has \"prep\" (default for upcoming meetings)","allOf":[{"$ref":"#/components/schemas/ExternalMeetingPrepDto"}]},"recap":{"description":"Present when include has \"recap\" (default for completed meetings)","allOf":[{"$ref":"#/components/schemas/ExternalMeetingRecapDto"}]}},"required":["meetingId","title","start","end","allDay","status","external","hasRecap","location","videoUrl","videoProvider","description","opportunity","companies","attendees"]}}}}