# Earnings Transcript

> Returns the earnings call transcript for a specific quarter.

`GET https://api.bavest.co/v2/corporate-actions/earnings/transcript`

Group: Corporate Actions. Route id: `v2_corporate_actions_earnings_transcript`. Included in: Startup, Pro, Growth.

## Authentication

Send your API key in the `x-api-key` header on every request. No key yet? Sign up at https://dashboard.bavest.co/sign-up (free trial). The examples read the key from the `BAVEST_API_KEY` environment variable.

## Parameters

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `symbol` | query | string | one of symbol, isin | Stock ticker symbol (e.g., `AAPL`, `MSFT`, `GOOGL`). Provide exactly one of symbol or isin. Example `AAPL`. |
| `isin` | query | string | one of symbol, isin | ISIN code (e.g., `US0378331005`). Provide exactly one of symbol or isin. Clear the symbol example before using an ISIN. |
| `year` | query | integer | yes | Fiscal year of the earnings call (e.g., 2026). Use the periods endpoint to discover available calls. Example `2026`. |
| `quarter` | query | integer | yes | Fiscal quarter (1-4) of the earnings call. One of `1`, `2`, `3`, `4`. Example `3`. |

Required: one of `symbol`, `isin`.

## Response

200 Successful response (`application/json`).

| Field | Type | Always present | Description |
|---|---|---|---|
| `data` | array of EarningsTranscript | no |  |
| `data[].date` | string (date) | no | Event date. |
| `data[].symbol` | string | no | Ticker symbol. |
| `data[].year` | integer \| null | no | Fiscal year. |
| `data[].quarter` | integer \| null | no | Fiscal quarter (1-4) |
| `data[].content` | string \| null | no | Full earnings call transcript text. |
| `meta` | ResponseMeta | no | Response envelope metadata. Always present on a 200: `time` is set by `core/response.py` on every successful response. Errors carry the same block, built by the same code, so a client parses one meta shape whether the call succeeded or failed. |
| `meta.time` | integer | no | Server-side processing time in milliseconds. Example: `17`. |
| `meta.parameters` | object | no | Echo of the request parameters the endpoint resolved. |

## Example request

```bash
curl 'https://api.bavest.co/v2/corporate-actions/earnings/transcript?symbol=AAPL&year=2026&quarter=3' \
  -H "x-api-key: $BAVEST_API_KEY"
```

## Example response

```json
{
  "data": [
    {
      "date": "2026-07-30",
      "symbol": "AAPL",
      "quarter": 3,
      "year": 2026,
      "content": "Suhasini Chandramouli: Good afternoon, welcome to the Apple Q3 fiscal year 2026 earnings conference call. My name is Suhasini Chandramouli, Director of Investor Relations. Today's call is being recorded. Speaking first today is Apple CEO Tim Cook, followed by CFO Kevan Parekh. Also joining us on today's call is incoming CEO John Ternus. After the prepared remarks, we'll open the call to questions from analysts. Please note that some of the information you'll hear during our discussion today will consist of forward-looking statements, including, without limitation, those regarding revenue, gros … [excerpt]"
    }
  ],
  "meta": {
    "parameters": {
      "quarter": "3",
      "symbol": "AAPL",
      "year": "2026"
    },
    "time": 36
  }
}
```

## Errors

| Status | Meaning |
|---|---|
| 400 | Invalid request parameters. Returned when required query parameters are missing, have invalid types, or violate constraints (e.g., providing both symbol and isin when they are mutually exclusive). |
| 401 | Missing or invalid API key. |
| 404 | Resource not found. |
| 429 | Rate limit exceeded. Retry after the `Retry-After` header interval. |
| 500 | An unexpected error occurred on the server. If the issue persists, contact support with the X-Request-Id header value. |
| 502 | Upstream data provider returned an error or is temporarily unavailable. Retry after a short delay. |
| 504 | The request timed out waiting for a response from the upstream data provider. This may occur for complex queries or during peak load. |
| default | An unexpected error occurred on the server. If the issue persists, contact support with the X-Request-Id header value. |

- `403` from the gateway: the API key is invalid or switched off.
- `429` with message `Limit Exceeded`: the monthly quota of the key is used up. With `Too Many Requests`: the key is throttled, or this route is not in the key's plan. Wait for `Retry-After` when it is sent.

## Links

- HTML page: https://dashboard.bavest.co/docs/v2_corporate_actions_earnings_transcript
- OpenAPI: https://dashboard.bavest.co/openapi.json (YAML: https://dashboard.bavest.co/openapi.yaml)
- Authentication: https://dashboard.bavest.co/docs/authentication.md
- MCP server for AI agents: https://dashboard.bavest.co/docs/mcp.md
- All routes: https://dashboard.bavest.co/llms.txt
