> 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 advanced video summary

GET https://api.fastpix.com/v1/ai/{mediaId}/advanced-summary

This endpoint retrieves the AI-generated advanced summary for an existing media. The structured response helps you review discussions, decisions, assigned tasks, unresolved questions, key metrics, sentiment, and speaker participation without watching the entire recording.

#### How it works

1. Send a `GET` request to this endpoint, replacing `<mediaId>` with the ID of the media.
2. The response includes the job status and the generated advanced summaries.

**Use case**: Use this endpoint to retrieve advanced summaries for a meeting recording or other processed media.

Reference: https://fastpix.com/docs/in-video-ai-api/advanced-summary/get-media-advanced-summary

## 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

- `mediaId` (string, required) — The unique identifier assigned to the media when it is created. The value must be a valid UUID.

## Response

### 200

Successfully retrieved media advanced summary.

- `success` (boolean, optional) — Shows the request status. Returns true for success and false for failure.
- `data` (AiMediaIdAdvancedSummaryGetResponsesContentApplicationJsonSchemaData, optional)

## Types

### AiMediaIdAdvancedSummaryGetResponsesContentApplicationJsonSchemaData

- `status` (string, optional) — Shows the status of the job. Returns COMPLETED if the job is completed.
- `result` (AdvancedSummaryResult, optional)

### AdvancedSummaryResult

- `meetingSummary` (AdvancedSummaryResultMeetingSummary, optional)
- `keyDecisions` (list of AdvancedSummaryResultKeyDecisionsItems, optional)
- `detailedNotes` (list of AdvancedSummaryResultDetailedNotesItems, optional)
- `actionItems` (list of AdvancedSummaryResultActionItemsItems, optional)
- `openQuestions` (list of AdvancedSummaryResultOpenQuestionsItems, optional)
- `keyMetrics` (list of AdvancedSummaryResultKeyMetricsItems, optional)
- `datesAndTimes` (list of AdvancedSummaryResultDatesAndTimesItems, optional)
- `sentiment` (AdvancedSummaryResultSentiment, optional)
- `speakerTalkTime` (list of AdvancedSummaryResultSpeakerTalkTimeItems, optional)

### AdvancedSummaryResultMeetingSummary

- `title` (string, optional) — A short descriptive title for the conversation.
- `overview` (string, optional) — A brief overview summarizing what was discussed and concluded.

### AdvancedSummaryResultKeyDecisionsItems

- `decision` (string, optional) — What was decided.
- `owner` (string, optional) — The person who made or owns the decision.
- `timestamp` (string, optional, nullable) — When in the conversation this was discussed (HH:MM:SS), if identifiable.

### AdvancedSummaryResultDetailedNotesItems

- `topic` (string, optional) — The subject or heading for this section of the discussion.
- `startTime` (string, optional, nullable) — The time the topic started (HH:MM:SS).
- `summary` (string, optional) — One or two sentences summarising what was said about this topic.
- `points` (list of string, optional) — Individual takeaways or notable things said under this topic.

### AdvancedSummaryResultActionItemsItems

- `owner` (string, optional) — The person responsible for the tasks in this group.
- `tasks` (list of AdvancedSummaryResultActionItemsItemsTasksItems, optional) — List of tasks assigned to this person.

### AdvancedSummaryResultOpenQuestionsItems

- `question` (string, optional) — Any question that was raised.
- `raisedBy` (string, optional) — The speaker that raised this question.
- `timestamp` (string, optional, nullable) — When in the conversation it was mentioned (HH:MM:SS), if identifiable.
- `context` (string, optional) — What prompted the question or what was being discussed when it came up.

### AdvancedSummaryResultKeyMetricsItems

- `label` (string, optional) — Short label describing what this number refers to.
- `value` (string, optional) — The number itself, with its unit or scale.

### AdvancedSummaryResultDatesAndTimesItems

- `date` (string, optional) — The date, in any format.
- `significance` (string, optional) — Shows what is significant about this date.

### AdvancedSummaryResultSentiment

- `positive` (integer, optional) — Percentage of encouraging, supportive, or optimistic language.
- `neutral` (integer, optional) — Percentage of neutral, objective, or unemotional language.
- `negative` (integer, optional) — Percentage of discouraging, unsupportive, or pessimistic language.

### AdvancedSummaryResultSpeakerTalkTimeItems

- `speaker` (string, optional) — The speaker's label (e.g. "speaker_1", "Alice").
- `percentage` (integer, optional) — The percentage of total talk time.
- `wpm` (integer, optional) — The speaker's average words per minute.

### AdvancedSummaryResultActionItemsItemsTasksItems

- `task` (string, optional) — Any task that was agreed to take away from this conversation.
- `dueDate` (string, optional, nullable) — When it's due (e.g. "15 Mar"), or null if no deadline was stated.
- `timestamp` (string, optional, nullable) — When in the conversation it was mentioned (HH:MM:SS), if identifiable.

## Examples

**Response**

```json
{
  "success": true,
  "data": {
    "status": "COMPLETED",
    "result": {
      "meetingSummary": {
        "title": "Q3 Product Roadmap Sync",
        "overview": "The team reviewed progress on the mobile redesign, agreed to push the beta launch by two weeks, and assigned owners for the remaining blockers."
      },
      "keyDecisions": [
        {
          "decision": "Delay the beta launch to the first week of next month.",
          "owner": "Priya",
          "timestamp": "00:12:45"
        },
        {
          "decision": "Adopt the new design system across all new screens.",
          "owner": "Marcus",
          "timestamp": "00:28:10"
        }
      ],
      "detailedNotes": [
        {
          "topic": "Mobile redesign progress",
          "startTime": "00:01:30",
          "summary": "The team walked through the current state of the redesign and flagged two outstanding blockers.",
          "points": [
            "The onboarding flow is feature complete and in QA.",
            "The settings screen is blocked on a backend API change."
          ]
        },
        {
          "topic": "Launch timeline",
          "startTime": "00:10:05",
          "summary": "Discussion of whether the original launch date is still realistic given the open blockers.",
          "points": [
            "Original date leaves no buffer for QA regressions.",
            "A two-week slip was proposed and broadly supported."
          ]
        }
      ],
      "actionItems": [
        {
          "owner": "Marcus",
          "tasks": [
            {
              "task": "Unblock the settings screen with the backend team.",
              "dueDate": "15 Mar",
              "timestamp": "00:14:20"
            },
            {
              "task": "Share updated design specs with engineering.",
              "dueDate": null,
              "timestamp": "00:30:55"
            }
          ]
        },
        {
          "owner": "Priya",
          "tasks": [
            {
              "task": "Update the launch calendar and notify stakeholders.",
              "dueDate": "12 Mar",
              "timestamp": "00:18:40"
            }
          ]
        }
      ],
      "openQuestions": [
        {
          "question": "Do we have capacity to support a phased rollout?",
          "raisedBy": "Dana",
          "timestamp": "00:22:15",
          "context": "Raised while discussing how to de-risk the launch."
        },
        {
          "question": "Who owns the migration script?",
          "raisedBy": "Marcus",
          "timestamp": "00:35:02",
          "context": "Came up when reviewing the backend dependency."
        }
      ],
      "keyMetrics": [
        {
          "label": "Active beta testers",
          "value": "1,200"
        },
        {
          "label": "Open blockers",
          "value": "2"
        },
        {
          "label": "Target launch slip",
          "value": "2 weeks"
        }
      ],
      "datesAndTimes": [
        {
          "date": "Mar 12, 2025",
          "significance": "Stakeholder notification deadline"
        },
        {
          "date": "Apr 07, 2025",
          "significance": "Revised beta launch date"
        }
      ],
      "sentiment": {
        "positive": 62,
        "neutral": 30,
        "negative": 8
      },
      "speakerTalkTime": [
        {
          "speaker": "Priya",
          "percentage": 45,
          "wpm": 168
        },
        {
          "speaker": "Marcus",
          "percentage": 38,
          "wpm": 152
        },
        {
          "speaker": "Dana",
          "percentage": 17,
          "wpm": 174
        }
      ]
    }
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.fastpix.com/v1/ai/4fa85f64-5717-4562-b3fc-2c963f66afa6/advanced-summary"

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

print(response.json())
```

```javascript
const url = 'https://api.fastpix.com/v1/ai/4fa85f64-5717-4562-b3fc-2c963f66afa6/advanced-summary';
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/ai/4fa85f64-5717-4562-b3fc-2c963f66afa6/advanced-summary"

	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/ai/4fa85f64-5717-4562-b3fc-2c963f66afa6/advanced-summary")

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/ai/4fa85f64-5717-4562-b3fc-2c963f66afa6/advanced-summary")
  .basicAuth("<username>", "<password>")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.fastpix.com/v1/ai/4fa85f64-5717-4562-b3fc-2c963f66afa6/advanced-summary', [
  'headers' => [
  ],
    'auth' => ['<username>', '<password>'],
]);

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

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

var client = new RestClient("https://api.fastpix.com/v1/ai/4fa85f64-5717-4562-b3fc-2c963f66afa6/advanced-summary");
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/ai/4fa85f64-5717-4562-b3fc-2c963f66afa6/advanced-summary")! 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()
```