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

# Get the summary (once)

GET https://summarize.emtelligent.com/v1/jobs/{job_id}/result

Returns the result and deletes it: a second request gets 410.

Reference: https://docs.emtelligent.com/summarization/api/jobs/get-result-v-1-jobs-job-id-result-get

## Authentication

- `Authorization` header (bearer token, required) — Customer API key or OAuth 2.0 access token (scope `summarization:process`)

## Request

### Path parameters

- `job_id` (string, required)

## Response

### 200

The summary

- `id` (string, required)
- `type` ("summary", required)
- `summary` (string, required) — The summary, as Markdown. With several documents, statements cite their documents as `[1]`, `[2]` …
- `stats` (SummaryStats, required)
- `pipeline_version` (string, required) — Version of the service that produced it
- `references` (list of Reference, optional, nullable) — With several documents: what each cited number refers to
- `warnings` (list of ResultWarning, optional, nullable) — Things to check before relying on the summary

## Errors

### 401 Unauthorized Error

Invalid credentials

- `error` (ErrorDetail, required)

### 404 Not Found Error

Unknown job, or a job of another organization

- `error` (ErrorDetail, required)

### 409 Conflict Error

Not ready yet (`not_ready`), or the job failed or was canceled (`no_result`)

- `error` (ErrorDetail, required)

### 410 Gone Error

Already downloaded, or expired

- `error` (ErrorDetail, required)

## Types

### SummaryStats

- `billed_pages` (integer, required) — What this job is billed, in pages: one per 2,048 bytes (UTF-8) of input (the text of every document plus the prompt) and one per 2,048 bytes of summary, each rounded up
- `latency_ms` (integer, required) — Processing time once the job started
- `documents` (integer, optional, nullable) — Documents summarized (with `documents`)

### Reference

- `ref` (integer, required) — The number cited in the summary as `[ref]`
- `document` (string, required) — The `id` of the document cited

### ResultWarning

- `code` (enum, required)
  - Allowed values: `possible_patient_mismatch`, `patient_check_incomplete`, `citations_unresolved`, `documents_skipped`
- `message` (string, required)
- `documents` (list of string, optional, nullable) — The documents concerned, by `id`
- `fields` (list of string, optional, nullable) — For `possible_patient_mismatch`: the kinds of patient detail that disagree (for example `name` or `dob`). Values are never returned

### ErrorDetail

- `code` (string, required) — Stable machine-readable code, e.g. `invalid_credentials`
- `message` (string, required) — Human-readable summary. Never echoes submitted content
- `request_id` (string, required) — Quote this to support; also in `X-Request-Id`

## Examples

### The summary

**Response**

```json
{
  "id": "job_c98217191c6fa760bb01bea8",
  "type": "summary",
  "summary": "**Hospital Course:** The patient was admitted on 2026-09-02 for \"community-acquired pneumonia of the right lower lobe.\" Treatment included \"IV ceftriaxone and azithromycin,\" transitioning to \"oral amoxicillin-clavulanate on day 3.\" Due to \"poorly controlled\" blood glucose (\"HbA1c 8.9%\"), metformin was increased to \"1000 mg twice daily.\" The patient was discharged on 2026-09-06, afebrile for 48 hours with \"oxygen saturation 96% on room air.\"\n\n**Active Problems:**\n* Community-acquired pneumonia (right lower lobe)\n* Type 2 diabetes mellitus (poorly controlled)\n* Hypertension\n\n**Discharge Medications:**\n* Amoxicillin-clavulanate 875/125 mg twice daily (for 4 more days)\n* Metformin 1000 mg twice daily\n* Lisinopril 10 mg daily",
  "stats": {
    "billed_pages": 2,
    "latency_ms": 4383
  },
  "pipeline_version": "2026.10.17-1"
}
```

**SDK Code**

```python The summary
import requests

url = "https://summarize.emtelligent.com/v1/jobs/job_id/result"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript The summary
const url = 'https://summarize.emtelligent.com/v1/jobs/job_id/result';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

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

```go The summary
package main

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

func main() {

	url := "https://summarize.emtelligent.com/v1/jobs/job_id/result"

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

	req.Header.Add("Authorization", "Bearer <token>")

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

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

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

}
```

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

url = URI("https://summarize.emtelligent.com/v1/jobs/job_id/result")

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

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

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

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

HttpResponse<String> response = Unirest.get("https://summarize.emtelligent.com/v1/jobs/job_id/result")
  .header("Authorization", "Bearer <token>")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://summarize.emtelligent.com/v1/jobs/job_id/result', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

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

```csharp The summary
using RestSharp;

var client = new RestClient("https://summarize.emtelligent.com/v1/jobs/job_id/result");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift The summary
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://summarize.emtelligent.com/v1/jobs/job_id/result")! 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()
```

### The summary of several documents, with references

**Response**

```json
{
  "id": "job_6499ca86b4c619a3ba63f8e7",
  "type": "summary",
  "summary": "**Course Since Admission**\nThe patient was admitted on 2026-09-02 for \"community-acquired pneumonia of the right lower lobe\" [1]. Treatment included IV ceftriaxone and azithromycin, transitioning to oral amoxicillin-clavulanate on day 3 [1]. Due to poorly controlled blood glucose (HbA1c 8.9%), metformin was increased to 1000 mg twice daily [1]. The patient was discharged on 2026-09-06, afebrile for 48 hours with an oxygen saturation of 96% on room air [1]. At a clinic follow-up on 2026-10-02, the patient's \"breathing improved,\" there was \"no edema,\" and weight was \"down 2 kg\" [2].\n\n**Cardiology Referral Plan**\nThe provided documents do not contain any information regarding a cardiology referral.",
  "stats": {
    "billed_pages": 2,
    "latency_ms": 4485,
    "documents": 2
  },
  "pipeline_version": "2026.10.17-1",
  "references": [
    {
      "ref": 1,
      "document": "discharge"
    },
    {
      "ref": 2,
      "document": "clinic-follow-up"
    }
  ]
}
```

**SDK Code**

```python The summary of several documents, with references
import requests

url = "https://summarize.emtelligent.com/v1/jobs/job_id/result"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript The summary of several documents, with references
const url = 'https://summarize.emtelligent.com/v1/jobs/job_id/result';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

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

```go The summary of several documents, with references
package main

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

func main() {

	url := "https://summarize.emtelligent.com/v1/jobs/job_id/result"

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

	req.Header.Add("Authorization", "Bearer <token>")

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

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

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

}
```

```ruby The summary of several documents, with references
require 'uri'
require 'net/http'

url = URI("https://summarize.emtelligent.com/v1/jobs/job_id/result")

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

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

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

```java The summary of several documents, with references
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://summarize.emtelligent.com/v1/jobs/job_id/result")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php The summary of several documents, with references
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://summarize.emtelligent.com/v1/jobs/job_id/result', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

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

```csharp The summary of several documents, with references
using RestSharp;

var client = new RestClient("https://summarize.emtelligent.com/v1/jobs/job_id/result");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift The summary of several documents, with references
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://summarize.emtelligent.com/v1/jobs/job_id/result")! 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()
```