---
title: "The earnings-call event for a fiscal quarter — the record grouping the quarter's call artefacts (audio, transcript, slide deck, 8-K earnings release), with the release's extracted guidance rows when approved ones exist."
method: GET
path: "/v1/stocks/{ticker}/earnings-calls/{fiscalYear}/{fiscalQuarter}"
tags: ["EarningsCalls"]
---

# The earnings-call event for a fiscal quarter — the record grouping the quarter's call artefacts (audio, transcript, slide deck, 8-K earnings release), with the release's extracted guidance rows when approved ones exist.

`GET /v1/stocks/{ticker}/earnings-calls/{fiscalYear}/{fiscalQuarter}`

## Request

- Base URL: `https://api.equibles.com`
- URL: `https://api.equibles.com/v1/stocks/{ticker}/earnings-calls/{fiscalYear}/{fiscalQuarter}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/equibles/apis/equibles-api/docs/v1/stocks/:ticker/earnings-calls/:fiscalYear/:fiscalQuarter/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `ticker` string, required
- `fiscalYear` integer, required
- `fiscalQuarter` integer, required

## Response `200`

OK

- EarningsCallEventResponse
  - `ticker` string, nullable
  - `companyName` string, nullable
  - `guidance` CallGuidanceItemDto[], nullable
    - `metric` string, nullable
    - `period` string, nullable
    - `fiscalYear` integer, nullable
    - `fiscalQuarter` integer, nullable
    - `low` number, double, nullable
    - `high` number, double, nullable
    - `midpoint` number, double, nullable
    - `unit` string, nullable
    - `basis` string, nullable: "GAAP" or "Non-GAAP"; null when the release did not state a basis.
    - `fromTable` boolean
    - `quote` string, nullable
    - `actual` number, double, nullable
    - `actualVerdict` string, nullable
    - `actualIsDerived` boolean: True when the actual was derived arithmetically from reported facts (a Q4 figure computed as full year minus nine-month YTD) rather than read from a filed XBRL fact directly. False for filed facts and while actual is null.
    - `changeVsPrior` string, nullable
    - `priorGuidanceRange` CallGuidancePriorRangeDto
      - `filedDate` string, date
      - `low` number, double
      - `high` number, double
  - `guidanceStatus` string, nullable: Why guidance is (or is not) populated: "approved" when a verifier-approved extraction backs the rows (an empty list then means the release genuinely guided nothing), "notExtracted" when the release exists but no approved extraction does yet, null when no 8-K earnings release is linked to the event.
  - `liveTranscriptState` string, nullable: Present while the call has preliminary live text and no speaker-labelled transcript yet: "live" while it is being recorded, "ended" once the recording finished, "endedEarly" when our capture stopped before the call did. Read the text from the live-transcript endpoint. Omitted otherwise.
  - `corrections` TranscriptCorrectionDto[], nullable
    - `metricLabel` string, nullable
    - `transcriptQuote` string, nullable
    - `transcriptValue` string, nullable
    - `filingValue` string, nullable
    - `filingForm` string, nullable
    - `filingFiledDate` string, date
    - `note` string, nullable
  - `id` string, uuid
  - `eventType` string, nullable
  - `eventTypeName` string, nullable
  - `title` string, nullable
  - `callDate` string, date-time
  - `callDateIsPeriodEnd` boolean: True when callDate is only the end of the call's fiscal quarter, held until the real call date is known; treat the call date as not confirmed. Always false for events other than earnings calls.
  - `fiscalYear` integer, nullable
  - `fiscalQuarter` integer, nullable
  - `status` string, nullable
  - `statusName` string, nullable
  - `webcastUrl` string, nullable
  - `transcriptDocumentId` string, uuid, nullable
  - `earningsReleaseDocumentId` string, uuid, nullable
  - `hasAudio` boolean
  - `hasSlides` boolean
  - `hasTranscript` boolean: Whether a speaker-labelled transcript is available via the speakers endpoints. Broader than transcriptDocumentId: an audio-pipeline transcription stores speaker turns without a transcript document, so gate on this flag, not the document id.
  - `materials` InvestorEventMaterialsDto
    - `transcript` MaterialStatusDto
      - `status` string, nullable: The material's state: "available" (on file), "pending" (not yet, and a capture lane will still try or the call has not happened), "notPublished" (the company published none, such as no replay or no deck), "failed" (we tried and could not capture or process it), "notAttempted" (no lane has tried it) or "noCallHeld" (the event had no call).
      - `reason` string, nullable: A short human-readable reason for the status.
      - `lastAttemptAt` string, date-time, nullable: When the capture lane last attempted this material; null when unknown or never attempted.
      - `nextAttemptAt` string, date-time, nullable: When the capture lane will next try or recheck it; null when no attempt is scheduled.
    - `audio` MaterialStatusDto
      - `status` string, nullable: The material's state: "available" (on file), "pending" (not yet, and a capture lane will still try or the call has not happened), "notPublished" (the company published none, such as no replay or no deck), "failed" (we tried and could not capture or process it), "notAttempted" (no lane has tried it) or "noCallHeld" (the event had no call).
      - `reason` string, nullable: A short human-readable reason for the status.
      - `lastAttemptAt` string, date-time, nullable: When the capture lane last attempted this material; null when unknown or never attempted.
      - `nextAttemptAt` string, date-time, nullable: When the capture lane will next try or recheck it; null when no attempt is scheduled.
    - `slides` MaterialStatusDto
      - `status` string, nullable: The material's state: "available" (on file), "pending" (not yet, and a capture lane will still try or the call has not happened), "notPublished" (the company published none, such as no replay or no deck), "failed" (we tried and could not capture or process it), "notAttempted" (no lane has tried it) or "noCallHeld" (the event had no call).
      - `reason` string, nullable: A short human-readable reason for the status.
      - `lastAttemptAt` string, date-time, nullable: When the capture lane last attempted this material; null when unknown or never attempted.
      - `nextAttemptAt` string, date-time, nullable: When the capture lane will next try or recheck it; null when no attempt is scheduled.
  - `isTombstoned` boolean, nullable: True on an event hidden by default because none of its materials could be captured; only includeUncaptured=true returns one. Omitted otherwise.
  - `presentationOnly` boolean, nullable: True when the audio and transcript are the company's presentation only: the company published no recording of the Q&A. Omitted otherwise.
  - `partialRecording` boolean, nullable: True when the audio and transcript come from a live recording that joined the call after it began: the opening is missing until the company's replay replaces them. Omitted otherwise.

## Other responses

- `400`: Bad Request
- `404`: Not Found

## Changes

- **2026-11-09** `879ad16326ad`: 1 info
  - added the optional property `liveTranscriptState` to the response with the `200` status
- **2026-11-06** `666e06778588`: 10 info
  - added the optional property `callDateIsPeriodEnd` to the response with the `200` status
  - added the optional property `companyName` to the response with the `200` status
  - added the optional property `error/availableDates` to the response with the `400` status
  - added the optional property `error/availableDates` to the response with the `404` status
  - …6 more

[Operation history](https://skmtc.dev/equibles/apis/equibles-api/changes/v1/stocks/:ticker/earnings-calls/:fiscalYear/:fiscalQuarter/get.md)

---

[API](https://skmtc.dev/equibles/apis/equibles-api.md) - [All operations](https://skmtc.dev/equibles/apis/equibles-api/llms.txt) - [OpenAPI document](https://skmtc.dev/equibles/apis/equibles-api/revisions/83f13ba1a993?raw)
