> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://fastpix.com/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://fastpix.com/docs/_mcp/server.

# Get meeting by ID

GET https://api.fastpix.com/v1/agents/notes-agent/meetings/{meetingId}

This endpoint retrieves a single recorded meeting using its unique identifier. It returns everything the meeting list returns, plus the scheduled end time, the organiser, the list of participants, and the playback link for the recording.

#### How it works

1. Make a GET request to this endpoint, replacing `{meetingId}` with the `id` of a meeting returned by `GET /agents/notes-agent/meetings`.

2. The response contains the meeting detail, including its `attendees` and the `streamLink` used to play the recording back.

Meetings belong to the workspace they were recorded in, so a meeting that belongs to a different workspace is not returned. A meeting whose recording has not finished processing is not returned either.

#### Example

A sales manager opens a recorded customer call from the meeting list, checks who attended, and plays the recording from the returned `streamLink` to review how the demo went.

Reference: https://fastpix.com/docs/agents/get-notes-agent-meeting-by-id

## Authentication

- `Authorization` header (basic auth, required) — FastPix APIs are secured with Basic Authentication. Use your Access Token ID as the username and Secret Key as the password in the Authorization header of each API request. * Username: Access Token ID * Password: Secret Key Activate your FastPix account to generate your API credentials. See the guide here

## Request

### Path parameters

- `meetingId` (string, required) — The unique identifier of the meeting, returned by FastPix in the meeting list.

## Response

### 200

Meeting details fetched successfully

- `success` (boolean, optional) — Shows the request status. Returns true for success and false for failure.
- `data` (NotesAgentMeetingDetail, optional) — The full detail of a meeting recorded by the notetaker bot.

## Types

### NotesAgentMeetingDetail

The full detail of a meeting recorded by the notetaker bot.

- `id` (string, optional) — The unique identifier of the meeting.
- `mediaId` (string, optional) — The unique identifier of the media asset that holds the recording. A meeting is retrievable only once its media is ready, so this is always present.
- `platform` (enum, optional) — The conferencing platform the meeting ran on, derived from its join link.
  - Allowed values: `meet`, `teams`, `zoom`
- `meetingTime` (datetime, optional) — The scheduled start time of the meeting, in UTC.
- `endTime` (datetime, optional, nullable) — The scheduled end time of the meeting, in UTC. This is the calendar end time and not the moment recording stopped, so compare it with `duration` for the recorded length.
- `organisedBy` (string, optional, nullable) — The display name of the meeting organiser, as reported by the conferencing platform.
- `attendees` (list of string, optional) — The display names of everyone who joined the meeting, as reported by the conferencing platform. The notetaker bot itself is included. Returns an empty array when the platform reported no participants.
- `title` (string, optional, nullable) — The title of the calendar event the meeting was created from.
- `duration` (double, optional, nullable) — The length of the recording in seconds, as a fractional value.
- `thumbnail` (string, optional, nullable) — The poster image generated from the recording.
- `streamLink` (string, optional, nullable) — The HLS manifest (`.m3u8`) used to play the recording back.

## Examples

**Response**

```json
{
  "success": true,
  "data": {
    "id": "3dee0629-4902-4f0a-90ce-0450854d5d77",
    "mediaId": "8167e2de-aa1e-444e-9b7b-825d6247eee6",
    "platform": "teams",
    "meetingTime": "2025-06-04T15:20:00Z",
    "endTime": "2025-06-04T15:50:00Z",
    "organisedBy": "Alex Carter",
    "attendees": [
      "FastPix Notes",
      "Alex Carter"
    ],
    "title": "Quarterly planning",
    "duration": 1980.533333,
    "thumbnail": "https://images.fastpix.com/36a8f7c8-14a7-48b0-a6c7-b2f05ab4bf08/thumbnail.png",
    "streamLink": "https://stream.fastpix.com/36a8f7c8-14a7-48b0-a6c7-b2f05ab4bf08.m3u8"
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.fastpix.com/v1/agents/notes-agent/meetings/8cacf3d9-c213-48df-a0a8-1aa0890a94cd"

response = requests.get(url, auth=("<username>", "<password>"))

print(response.json())
```

```javascript
const url = 'https://api.fastpix.com/v1/agents/notes-agent/meetings/8cacf3d9-c213-48df-a0a8-1aa0890a94cd';
const credentials = btoa("<username>:<password>");

const options = {method: 'GET', headers: {Authorization: `Basic ${credentials}`}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.fastpix.com/v1/agents/notes-agent/meetings/8cacf3d9-c213-48df-a0a8-1aa0890a94cd"

	req, _ := http.NewRequest("GET", url, nil)

	req.SetBasicAuth("<username>", "<password>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.fastpix.com/v1/agents/notes-agent/meetings/8cacf3d9-c213-48df-a0a8-1aa0890a94cd")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request.basic_auth("<username>", "<password>")

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.fastpix.com/v1/agents/notes-agent/meetings/8cacf3d9-c213-48df-a0a8-1aa0890a94cd")
  .basicAuth("<username>", "<password>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.fastpix.com/v1/agents/notes-agent/meetings/8cacf3d9-c213-48df-a0a8-1aa0890a94cd', [
  'headers' => [
  ],
    'auth' => ['<username>', '<password>'],
]);

echo $response->getBody();
```

```csharp
using RestSharp;
using RestSharp.Authenticators;

var client = new RestClient("https://api.fastpix.com/v1/agents/notes-agent/meetings/8cacf3d9-c213-48df-a0a8-1aa0890a94cd");
client.Authenticator = new HttpBasicAuthenticator("<username>", "<password>");
var request = new RestRequest(Method.GET);

IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let credentials = Data("<username>:<password>".utf8).base64EncodedString()

let headers = ["Authorization": "Basic \(credentials)"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.fastpix.com/v1/agents/notes-agent/meetings/8cacf3d9-c213-48df-a0a8-1aa0890a94cd")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```